@burdenoff/cli-sdk 2026.1102.2 → 2026.1102.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/modules/adaptercloud/index.cjs +6 -3
- package/dist/modules/adaptercloud/index.js +6 -3
- package/dist/modules/assethandler/index.cjs +22 -57
- package/dist/modules/assethandler/index.js +27 -62
- package/dist/modules/atheletebridge/index.cjs +33 -19
- package/dist/modules/atheletebridge/index.js +32 -18
- package/dist/modules/buildmyiq/index.cjs +64 -67
- package/dist/modules/buildmyiq/index.js +60 -63
- package/dist/modules/comradecircle/index.cjs +23 -15
- package/dist/modules/comradecircle/index.js +19 -11
- package/dist/modules/coolandlovely/index.cjs +27 -14
- package/dist/modules/coolandlovely/index.js +29 -16
- package/dist/modules/crewfoundry/index.cjs +63 -116
- package/dist/modules/crewfoundry/index.js +62 -115
- package/dist/modules/ecoimpacthub/index.cjs +19 -9
- package/dist/modules/ecoimpacthub/index.js +19 -9
- package/dist/modules/eventfullymanaged/index.cjs +77 -77
- package/dist/modules/eventfullymanaged/index.js +78 -78
- package/dist/modules/govcitizenhub/index.cjs +7 -4
- package/dist/modules/govcitizenhub/index.js +7 -4
- package/dist/modules/headshotmarketing/index.cjs +92 -261
- package/dist/modules/headshotmarketing/index.js +94 -263
- package/dist/modules/hookmovies/index.cjs +17 -6
- package/dist/modules/hookmovies/index.js +20 -9
- package/dist/modules/housingvista/index.cjs +31 -24
- package/dist/modules/housingvista/index.js +26 -19
- package/dist/modules/intelwatchtower/index.cjs +24 -12
- package/dist/modules/intelwatchtower/index.js +24 -12
- package/dist/modules/kadaikodi/index.cjs +56 -90
- package/dist/modules/kadaikodi/index.js +60 -94
- package/dist/modules/labsofscience/index.cjs +8 -4
- package/dist/modules/labsofscience/index.js +8 -4
- package/dist/modules/manufacturedops/index.cjs +35 -22
- package/dist/modules/manufacturedops/index.js +34 -21
- package/dist/modules/movethewheels/index.cjs +103 -231
- package/dist/modules/movethewheels/index.js +103 -231
- package/dist/modules/planmagnet/index.cjs +21 -21
- package/dist/modules/planmagnet/index.js +32 -32
- package/dist/modules/proserviceworld/index.cjs +17 -12
- package/dist/modules/proserviceworld/index.js +17 -12
- package/dist/modules/subscriberbot/index.cjs +43 -19
- package/dist/modules/subscriberbot/index.js +46 -22
- package/dist/modules/technospam/index.cjs +17 -8
- package/dist/modules/technospam/index.js +17 -8
- package/dist/modules/theculturepost/index.cjs +27 -22
- package/dist/modules/theculturepost/index.js +31 -26
- package/dist/modules/theglobalfuel/index.cjs +65 -60
- package/dist/modules/theglobalfuel/index.js +65 -60
- package/dist/modules/timecampus/index.cjs +31 -85
- package/dist/modules/timecampus/index.js +32 -86
- package/package.json +1 -1
|
@@ -75,18 +75,21 @@ import {a,b as b$1,i,r,h as h$1,k as k$1,d}from'../../chunk-O6UCQ5IT.js';import
|
|
|
75
75
|
`,b=`
|
|
76
76
|
query IntListIndicators($entityId: ID, $isActive: Boolean, $type: IntIndicatorType) {
|
|
77
77
|
intListIndicators(entityId: $entityId, isActive: $isActive, type: $type) {
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
items {
|
|
79
|
+
id type value classification confidence description entityId isActive validFrom
|
|
80
|
+
validUntil createdAt updatedAt workspaceId
|
|
81
|
+
}
|
|
82
|
+
pageInfo { cursor hasMore }
|
|
80
83
|
}
|
|
81
84
|
}
|
|
82
|
-
`,
|
|
85
|
+
`,h=`
|
|
83
86
|
mutation IntCreateIndicator($input: IntCreateIndicatorInput!) {
|
|
84
87
|
intCreateIndicator(input: $input) {
|
|
85
88
|
id type value classification confidence description entityId isActive
|
|
86
89
|
validFrom validUntil createdAt workspaceId
|
|
87
90
|
}
|
|
88
91
|
}
|
|
89
|
-
`,
|
|
92
|
+
`,k=`
|
|
90
93
|
mutation IntDeactivateIndicator($id: ID!) {
|
|
91
94
|
intDeactivateIndicator(id: $id) {
|
|
92
95
|
id type value isActive updatedAt workspaceId
|
|
@@ -109,8 +112,11 @@ import {a,b as b$1,i,r,h as h$1,k as k$1,d}from'../../chunk-O6UCQ5IT.js';import
|
|
|
109
112
|
`,U=`
|
|
110
113
|
query IntListMissions($status: IntMissionStatus) {
|
|
111
114
|
intListMissions(status: $status) {
|
|
112
|
-
|
|
113
|
-
|
|
115
|
+
items {
|
|
116
|
+
id name codename classification commanderId objective status startAt endAt tags
|
|
117
|
+
createdAt updatedAt workspaceId
|
|
118
|
+
}
|
|
119
|
+
pageInfo { cursor hasMore }
|
|
114
120
|
}
|
|
115
121
|
}
|
|
116
122
|
`,M=`
|
|
@@ -129,9 +135,12 @@ import {a,b as b$1,i,r,h as h$1,k as k$1,d}from'../../chunk-O6UCQ5IT.js';import
|
|
|
129
135
|
`,F=`
|
|
130
136
|
query IntCase($id: ID!) {
|
|
131
137
|
intCase(id: $id) {
|
|
132
|
-
id title classification status priority summary reference leadAnalystId
|
|
133
|
-
|
|
134
|
-
entries {
|
|
138
|
+
id title classification status priority summary reference leadAnalystId missionId tags
|
|
139
|
+
openedAt closedAt createdAt updatedAt workspaceId
|
|
140
|
+
entries {
|
|
141
|
+
items { id caseId kind body createdAt updatedAt workspaceId }
|
|
142
|
+
pageInfo { cursor hasMore }
|
|
143
|
+
}
|
|
135
144
|
}
|
|
136
145
|
}
|
|
137
146
|
`,P=`
|
|
@@ -166,8 +175,11 @@ import {a,b as b$1,i,r,h as h$1,k as k$1,d}from'../../chunk-O6UCQ5IT.js';import
|
|
|
166
175
|
`,G=`
|
|
167
176
|
query IntListRequirements($missionId: ID, $status: IntRequirementStatus) {
|
|
168
177
|
intListRequirements(missionId: $missionId, status: $status) {
|
|
169
|
-
|
|
170
|
-
|
|
178
|
+
items {
|
|
179
|
+
id title classification description priority status missionId requestedById dueDate
|
|
180
|
+
satisfiedAt tags createdAt updatedAt workspaceId
|
|
181
|
+
}
|
|
182
|
+
pageInfo { cursor hasMore }
|
|
171
183
|
}
|
|
172
184
|
}
|
|
173
185
|
`,V=`
|
|
@@ -308,4 +320,4 @@ import {a,b as b$1,i,r,h as h$1,k as k$1,d}from'../../chunk-O6UCQ5IT.js';import
|
|
|
308
320
|
query IntHealth {
|
|
309
321
|
intHealth
|
|
310
322
|
}
|
|
311
|
-
`;function y(r,n){try{return JSON.parse(n)}catch{throw new o(`--${r} must be valid JSON`)}}function p(r){let n=Number.parseInt(r,10);if(Number.isNaN(n))throw new o(`Expected an integer but got "${r}"`);return n}function g(r){let n=Number.parseFloat(r);if(Number.isNaN(n))throw new o(`Expected a number but got "${r}"`);return n}function m(r){return r.split(",").map(n=>n.trim()).filter(n=>n.length>0)}function nt(r$1){let n=r$1.command("sources").description("IntelWatchtower collection sources");n.command("list").description("List collection sources").option("--discipline <d>","HUMINT|SIGINT|GEOINT|OSINT|IMINT|MASINT|CYBER").option("--status <s>","PROVISIONING|ACTIVE|DEGRADED|OFFLINE|RETIRED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let i$1=await b$1(S,{discipline:t.discipline?t.discipline.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,i$1.intListSources.items,{headers:["ID","Name","Discipline","Status","Reliability"],rows:i$1.intListSources.items.map(e=>[r(e.id,12),e.name,e.discipline,e.status,String(e.reliability??0)])});}catch(i){h$1(i);}}),n.command("get").description("Get a source by id").argument("<id>","Source ID").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e=await b$1(A,{id:t});if(!e.intSource)throw new o(`Source ${t} not found`);i(i$1,e.intSource);}catch(e){h$1(e);}}),n.command("create").description("Create a collection source").requiredOption("--name <name>","Source name").requiredOption("--discipline <d>","HUMINT|SIGINT|GEOINT|OSINT|IMINT|MASINT|CYBER").option("--codename <c>","Codename").option("--description <s>","Description").option("--operator <id>","Operator user ID").option("--region <r>","Region").option("--reliability <n>","Reliability (0-100)",p).option("--status <s>","PROVISIONING|ACTIVE|DEGRADED|OFFLINE|RETIRED").option("--classification <c>","UNCLASSIFIED|CONFIDENTIAL|SECRET|TOP_SECRET").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let i$1={name:t.name,discipline:t.discipline.toUpperCase()};t.codename&&(i$1.codename=t.codename),t.description&&(i$1.description=t.description),t.operator&&(i$1.operatorId=t.operator),t.region&&(i$1.region=t.region),t.reliability!==void 0&&(i$1.reliability=t.reliability),t.status&&(i$1.status=t.status.toUpperCase()),t.classification&&(i$1.classification=t.classification.toUpperCase()),t.tags&&(i$1.tags=m(t.tags));let e=await b$1(R,{input:i$1});k$1(`Source created: ${e.intCreateSource.name}`),i(t,e.intCreateSource);}catch(i){h$1(i);}}),n.command("update").description("Update a collection source").argument("<id>","Source ID").option("--name <name>","Source name").option("--discipline <d>","HUMINT|SIGINT|GEOINT|OSINT|IMINT|MASINT|CYBER").option("--codename <c>","Codename").option("--description <s>","Description").option("--operator <id>","Operator user ID").option("--region <r>","Region").option("--reliability <n>","Reliability (0-100)",p).option("--status <s>","PROVISIONING|ACTIVE|DEGRADED|OFFLINE|RETIRED").option("--classification <c>","UNCLASSIFIED|CONFIDENTIAL|SECRET|TOP_SECRET").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e={};if(i$1.name&&(e.name=i$1.name),i$1.discipline&&(e.discipline=i$1.discipline.toUpperCase()),i$1.codename&&(e.codename=i$1.codename),i$1.description!==void 0&&(e.description=i$1.description),i$1.operator&&(e.operatorId=i$1.operator),i$1.region&&(e.region=i$1.region),i$1.reliability!==void 0&&(e.reliability=i$1.reliability),i$1.status&&(e.status=i$1.status.toUpperCase()),i$1.classification&&(e.classification=i$1.classification.toUpperCase()),i$1.tags&&(e.tags=m(i$1.tags)),!Object.keys(e).length)throw new o("No updates specified");let E=await b$1(O,{id:t,input:e});k$1("Source updated"),i(i$1,E.intUpdateSource);}catch(e){h$1(e);}}),n.command("retire").description("Retire (delete) a collection source").argument("<id>","Source ID").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e=await b$1(N,{id:t});k$1(`Source retired: ${e.intRetireSource}`),i(i$1,{retired:e.intRetireSource});}catch(e){h$1(e);}});}function st(r$1){let n=r$1.command("entities").description("IntelWatchtower entities of interest");n.command("list").description("List entities").option("--type <t>","PERSON|ORGANIZATION|LOCATION|FACILITY|VEHICLE|VESSEL|AIRCRAFT|EVENT|NETWORK_NODE").option("--confidence <c>","LOW|MODERATE|HIGH|CONFIRMED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let i$1=await b$1(w,{type:t.type?t.type.toUpperCase():void 0,confidence:t.confidence?t.confidence.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,i$1.intListEntities.items,{headers:["ID","Name","Type","Confidence","Threat"],rows:i$1.intListEntities.items.map(e=>[r(e.id,12),e.name,e.type,e.confidence,String(e.threatScore??0)])});}catch(i){h$1(i);}}),n.command("get").description("Get an entity by id").argument("<id>","Entity ID").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e=await b$1(D,{id:t});if(!e.intEntity)throw new o(`Entity ${t} not found`);i(i$1,e.intEntity);}catch(e){h$1(e);}}),n.command("create").description("Create an entity of interest").requiredOption("--name <name>","Entity name").requiredOption("--type <t>","PERSON|ORGANIZATION|LOCATION|FACILITY|VEHICLE|VESSEL|AIRCRAFT|EVENT|NETWORK_NODE").option("--description <s>","Description").option("--confidence <c>","LOW|MODERATE|HIGH|CONFIRMED").option("--classification <c>","UNCLASSIFIED|CONFIDENTIAL|SECRET|TOP_SECRET").option("--aliases <csv>","Comma-separated aliases").option("--latitude <n>","Latitude",g).option("--longitude <n>","Longitude",g).option("--threat-score <n>","Threat score",p).option("--tags <csv>","Comma-separated tags").option("--attributes <json>","Attributes JSON").option("-f, --format <format>","Output format").action(async t=>{try{let i$1={name:t.name,type:t.type.toUpperCase()};t.description&&(i$1.description=t.description),t.confidence&&(i$1.confidence=t.confidence.toUpperCase()),t.classification&&(i$1.classification=t.classification.toUpperCase()),t.aliases&&(i$1.aliases=m(t.aliases)),t.latitude!==void 0&&(i$1.latitude=t.latitude),t.longitude!==void 0&&(i$1.longitude=t.longitude),t.threatScore!==void 0&&(i$1.threatScore=t.threatScore),t.tags&&(i$1.tags=m(t.tags)),t.attributes&&(i$1.attributes=y("attributes",t.attributes));let e=await b$1(L,{input:i$1});k$1(`Entity created: ${e.intCreateEntity.name}`),i(t,e.intCreateEntity);}catch(i){h$1(i);}}),n.command("update").description("Update an entity of interest").argument("<id>","Entity ID").option("--name <name>","Entity name").option("--description <s>","Description").option("--confidence <c>","LOW|MODERATE|HIGH|CONFIRMED").option("--classification <c>","UNCLASSIFIED|CONFIDENTIAL|SECRET|TOP_SECRET").option("--aliases <csv>","Comma-separated aliases").option("--latitude <n>","Latitude",g).option("--longitude <n>","Longitude",g).option("--threat-score <n>","Threat score",p).option("--tags <csv>","Comma-separated tags").option("--attributes <json>","Attributes JSON").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e={};if(i$1.name&&(e.name=i$1.name),i$1.description!==void 0&&(e.description=i$1.description),i$1.confidence&&(e.confidence=i$1.confidence.toUpperCase()),i$1.classification&&(e.classification=i$1.classification.toUpperCase()),i$1.aliases&&(e.aliases=m(i$1.aliases)),i$1.latitude!==void 0&&(e.latitude=i$1.latitude),i$1.longitude!==void 0&&(e.longitude=i$1.longitude),i$1.threatScore!==void 0&&(e.threatScore=i$1.threatScore),i$1.tags&&(e.tags=m(i$1.tags)),i$1.attributes&&(e.attributes=y("attributes",i$1.attributes)),!Object.keys(e).length)throw new o("No updates specified");let E=await b$1(_,{id:t,input:e});k$1("Entity updated"),i(i$1,E.intUpdateEntity);}catch(e){h$1(e);}});}function ot(r$1){let n=r$1.command("indicators").description("IntelWatchtower indicators (IOCs)");n.command("list").description("List indicators").option("--entity <id>","Filter by entity ID").option("--type <t>","IP_ADDRESS|DOMAIN|URL|EMAIL|FILE_HASH|GEO_COORDINATE|SIGNATURE|BEHAVIOR").option("--active <bool>","true|false",t=>t==="true").option("-f, --format <format>","Output format").action(async t=>{try{let i$1=await b$1(b,{entityId:t.entity,type:t.type?t.type.toUpperCase():void 0,isActive:t.active});i(t,i$1.intListIndicators,{headers:["ID","Type","Value","Confidence","Active"],rows:i$1.intListIndicators.map(e=>[r(e.id,12),e.type,r(e.value,30),e.confidence,e.isActive?"yes":"no"])});}catch(i){h$1(i);}}),n.command("create").description("Create an indicator").requiredOption("--type <t>","IP_ADDRESS|DOMAIN|URL|EMAIL|FILE_HASH|GEO_COORDINATE|SIGNATURE|BEHAVIOR").requiredOption("--value <v>","Indicator value").option("--entity <id>","Associated entity ID").option("--description <s>","Description").option("--confidence <c>","LOW|MODERATE|HIGH|CONFIRMED").option("--classification <c>","UNCLASSIFIED|CONFIDENTIAL|SECRET|TOP_SECRET").option("--valid-from <iso>","Valid from (ISO date)").option("--valid-until <iso>","Valid until (ISO date)").option("-f, --format <format>","Output format").action(async t=>{try{let i$1={type:t.type.toUpperCase(),value:t.value};t.entity&&(i$1.entityId=t.entity),t.description&&(i$1.description=t.description),t.confidence&&(i$1.confidence=t.confidence.toUpperCase()),t.classification&&(i$1.classification=t.classification.toUpperCase()),t.validFrom&&(i$1.validFrom=t.validFrom),t.validUntil&&(i$1.validUntil=t.validUntil);let e=await b$1(k,{input:i$1});k$1(`Indicator created: ${e.intCreateIndicator.value}`),i(t,e.intCreateIndicator);}catch(i){h$1(i);}}),n.command("deactivate").description("Deactivate an indicator").argument("<id>","Indicator ID").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e=await b$1(h,{id:t});k$1("Indicator deactivated"),i(i$1,e.intDeactivateIndicator);}catch(e){h$1(e);}});}function at(r){r.command("feeds").description("IntelWatchtower source feeds").command("create").description("Create a source feed").requiredOption("--name <name>","Feed name").requiredOption("--source <id>","Source ID").option("--endpoint <url>","Feed endpoint URL").option("--format <fmt>","Feed payload format").option("--status <s>","CONNECTED|DISCONNECTED|ERROR|STALE").option("-f, --output-format <format>","Output format").action(async t=>{try{let i$1={name:t.name,sourceId:t.source};t.endpoint&&(i$1.endpoint=t.endpoint),t.format&&(i$1.format=t.format),t.status&&(i$1.status=t.status.toUpperCase());let e=await b$1($,{input:i$1});k$1(`Feed created: ${e.intCreateFeed.name}`),i({format:t.outputFormat},e.intCreateFeed);}catch(i){h$1(i);}});}function rt(r$1){let n=r$1.command("missions").description("IntelWatchtower missions");n.command("list").description("List missions").option("--status <s>","PLANNING|READY|ACTIVE|PAUSED|COMPLETED|ABORTED").option("-f, --format <format>","Output format").action(async t=>{try{let i$1=await b$1(U,{status:t.status?t.status.toUpperCase():void 0});i(t,i$1.intListMissions,{headers:["ID","Name","Codename","Classification","Status"],rows:i$1.intListMissions.map(e=>[r(e.id,12),e.name,e.codename??"-",e.classification,e.status])});}catch(i){h$1(i);}}),n.command("get").description("Get a mission by id").argument("<id>","Mission ID").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e=await b$1(v,{id:t});if(!e.intMission)throw new o(`Mission ${t} not found`);i(i$1,e.intMission);}catch(e){h$1(e);}}),n.command("create").description("Create a mission").requiredOption("--name <name>","Mission name").option("--codename <c>","Codename").option("--objective <s>","Objective").option("--commander <id>","Commander user ID").option("--classification <c>","UNCLASSIFIED|CONFIDENTIAL|SECRET|TOP_SECRET").option("--start-at <iso>","Start (ISO date)").option("--end-at <iso>","End (ISO date)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let i$1={name:t.name};t.codename&&(i$1.codename=t.codename),t.objective&&(i$1.objective=t.objective),t.commander&&(i$1.commanderId=t.commander),t.classification&&(i$1.classification=t.classification.toUpperCase()),t.startAt&&(i$1.startAt=t.startAt),t.endAt&&(i$1.endAt=t.endAt),t.tags&&(i$1.tags=m(t.tags));let e=await b$1(M,{input:i$1});k$1(`Mission created: ${e.intCreateMission.name}`),i(t,e.intCreateMission);}catch(i){h$1(i);}}),n.command("transition").description("Transition a mission to a new status").argument("<id>","Mission ID").requiredOption("--status <s>","PLANNING|READY|ACTIVE|PAUSED|COMPLETED|ABORTED").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e=await b$1(q,{id:t,status:i$1.status.toUpperCase()});k$1(`Mission status set to ${e.intTransitionMission.status}`),i(i$1,e.intTransitionMission);}catch(e){h$1(e);}});}function ct(r$1){let n=r$1.command("cases").description("IntelWatchtower investigation cases");n.command("list").description("List cases").option("--mission <id>","Filter by mission ID").option("--status <s>","OPEN|ACTIVE|PENDING_REVIEW|CLOSED|ARCHIVED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let i$1=await b$1(P,{missionId:t.mission,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,i$1.intListCases.items,{headers:["ID","Title","Classification","Status","Priority"],rows:i$1.intListCases.items.map(e=>[r(e.id,12),e.title,e.classification,e.status,e.priority])});}catch(i){h$1(i);}}),n.command("get").description("Get a case by id").argument("<id>","Case ID").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e=await b$1(F,{id:t});if(!e.intCase)throw new o(`Case ${t} not found`);i(i$1,e.intCase);}catch(e){h$1(e);}}),n.command("create").description("Open a new case").requiredOption("--title <t>","Case title").option("--summary <s>","Summary").option("--reference <r>","External reference").option("--mission <id>","Mission ID").option("--lead-analyst <id>","Lead analyst user ID").option("--priority <p>","ROUTINE|PRIORITY|IMMEDIATE|FLASH").option("--classification <c>","UNCLASSIFIED|CONFIDENTIAL|SECRET|TOP_SECRET").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let i$1={title:t.title};t.summary&&(i$1.summary=t.summary),t.reference&&(i$1.reference=t.reference),t.mission&&(i$1.missionId=t.mission),t.leadAnalyst&&(i$1.leadAnalystId=t.leadAnalyst),t.priority&&(i$1.priority=t.priority.toUpperCase()),t.classification&&(i$1.classification=t.classification.toUpperCase()),t.tags&&(i$1.tags=m(t.tags));let e=await b$1(x,{input:i$1});k$1(`Case created: ${e.intCreateCase.title}`),i(t,e.intCreateCase);}catch(i){h$1(i);}}),n.command("close").description("Close a case").argument("<id>","Case ID").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e=await b$1(H,{id:t});k$1("Case closed"),i(i$1,e.intCloseCase);}catch(e){h$1(e);}}),n.command("add-entry").description("Add an entry to a case log").requiredOption("--case <id>","Case ID").requiredOption("--kind <k>","Entry kind (e.g. note, evidence, action)").requiredOption("--body <text>","Entry body").option("--file <id>","Evidence file ID (wspace-files-svc)").option("-f, --format <format>","Output format").action(async t=>{try{let i$1={caseId:t.case,kind:t.kind,body:t.body};t.file&&(i$1.fileId=t.file);let e=await b$1(W,{input:i$1});k$1("Case entry added"),i(t,e.intAddCaseEntry);}catch(i){h$1(i);}});}function dt(r$1){let n=r$1.command("requirements").description("IntelWatchtower collection requirements");n.command("list").description("List collection requirements").option("--mission <id>","Filter by mission ID").option("--status <s>","DRAFT|SUBMITTED|APPROVED|TASKED|SATISFIED|CANCELLED").option("-f, --format <format>","Output format").action(async t=>{try{let i$1=await b$1(G,{missionId:t.mission,status:t.status?t.status.toUpperCase():void 0});i(t,i$1.intListRequirements,{headers:["ID","Title","Classification","Priority","Status"],rows:i$1.intListRequirements.map(e=>[r(e.id,12),e.title,e.classification,e.priority,e.status])});}catch(i){h$1(i);}}),n.command("create").description("Create a collection requirement").requiredOption("--title <t>","Requirement title").option("--description <s>","Description").option("--mission <id>","Mission ID").option("--requested-by <id>","Requesting user ID").option("--priority <p>","ROUTINE|PRIORITY|IMMEDIATE|FLASH").option("--classification <c>","UNCLASSIFIED|CONFIDENTIAL|SECRET|TOP_SECRET").option("--due-date <iso>","Due date (ISO date)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let i$1={title:t.title};t.description&&(i$1.description=t.description),t.mission&&(i$1.missionId=t.mission),t.requestedBy&&(i$1.requestedById=t.requestedBy),t.priority&&(i$1.priority=t.priority.toUpperCase()),t.classification&&(i$1.classification=t.classification.toUpperCase()),t.dueDate&&(i$1.dueDate=t.dueDate),t.tags&&(i$1.tags=m(t.tags));let e=await b$1(V,{input:i$1});k$1(`Requirement created: ${e.intCreateRequirement.title}`),i(t,e.intCreateRequirement);}catch(i){h$1(i);}});}function pt(r$1){let n=r$1.command("tasks").description("IntelWatchtower collection tasks (taskings)");n.command("list").description("List collection tasks").option("--source <id>","Filter by source ID").option("--requirement <id>","Filter by requirement ID").option("--status <s>","PENDING|DISPATCHED|COLLECTING|COMPLETED|FAILED|CANCELLED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let i$1=await b$1(B,{sourceId:t.source,requirementId:t.requirement,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,i$1.intListTasks.items,{headers:["ID","Source","Requirement","Status"],rows:i$1.intListTasks.items.map(e=>[r(e.id,12),r(e.sourceId,12),e.requirementId?r(e.requirementId,12):"-",e.status])});}catch(i){h$1(i);}}),n.command("create").description("Create a collection task against a source").requiredOption("--source <id>","Source ID").option("--requirement <id>","Requirement ID").option("--instructions <s>","Tasking instructions").option("--start-at <iso>","Start (ISO date)").option("--end-at <iso>","End (ISO date)").option("-f, --format <format>","Output format").action(async t=>{try{let i$1={sourceId:t.source};t.requirement&&(i$1.requirementId=t.requirement),t.instructions&&(i$1.instructions=t.instructions),t.startAt&&(i$1.startAt=t.startAt),t.endAt&&(i$1.endAt=t.endAt);let e=await b$1(Y,{input:i$1});k$1(`Task created: ${e.intCreateTask.id}`),i(t,e.intCreateTask);}catch(i){h$1(i);}}),n.command("transition").description("Advance a collection task to a new status").argument("<id>","Task ID").requiredOption("--status <s>","PENDING|DISPATCHED|COLLECTING|COMPLETED|FAILED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e=await b$1(j,{id:t,status:i$1.status.toUpperCase()});k$1(`Task status set to ${e.intTransitionTask.status}`),i(i$1,e.intTransitionTask);}catch(e){h$1(e);}});}function mt(r$1){let n=r$1.command("observations").description("IntelWatchtower observations (collected reporting)");n.command("list").description("List observations").option("--entity <id>","Filter by entity ID").option("--source <id>","Filter by source ID").option("--task <id>","Filter by task ID").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let i$1=await b$1(K,{entityId:t.entity,sourceId:t.source,taskId:t.task,pagination:{limit:t.limit,offset:t.offset}});i(t,i$1.intListObservations.items,{headers:["ID","Source","Classification","Summary"],rows:i$1.intListObservations.items.map(e=>[r(e.id,12),r(e.sourceId,12),e.classification,r(e.summary,40)])});}catch(i){h$1(i);}}),n.command("record").description("Record an observation").requiredOption("--source <id>","Source ID").requiredOption("--summary <s>","Observation summary").requiredOption("--observed-at <iso>","Observed at (ISO date)").option("--entity <id>","Associated entity ID").option("--task <id>","Associated task ID").option("--classification <c>","UNCLASSIFIED|CONFIDENTIAL|SECRET|TOP_SECRET").option("--latitude <n>","Latitude",g).option("--longitude <n>","Longitude",g).option("--payload <json>","Payload JSON").option("-f, --format <format>","Output format").action(async t=>{try{let i$1={sourceId:t.source,summary:t.summary,observedAt:t.observedAt};t.entity&&(i$1.entityId=t.entity),t.task&&(i$1.taskId=t.task),t.classification&&(i$1.classification=t.classification.toUpperCase()),t.latitude!==void 0&&(i$1.latitude=t.latitude),t.longitude!==void 0&&(i$1.longitude=t.longitude),t.payload&&(i$1.payload=y("payload",t.payload));let e=await b$1(J,{input:i$1});k$1(`Observation recorded: ${e.intRecordObservation.id}`),i(t,e.intRecordObservation);}catch(i){h$1(i);}});}function ut(r$1){let n=r$1.command("alerts").description("IntelWatchtower alerts");n.command("list").description("List alerts").option("--entity <id>","Filter by entity ID").option("--severity <s>","INFO|LOW|MEDIUM|HIGH|CRITICAL").option("--status <s>","OPEN|TRIAGED|ESCALATED|RESOLVED|FALSE_POSITIVE|SUPPRESSED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let i$1=await b$1(z,{entityId:t.entity,severity:t.severity?t.severity.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,i$1.intListAlerts.items,{headers:["ID","Title","Severity","Status","Classification"],rows:i$1.intListAlerts.items.map(e=>[r(e.id,12),e.title,e.severity,e.status,e.classification])});}catch(i){h$1(i);}}),n.command("raise").description("Raise a new alert").requiredOption("--title <t>","Alert title").option("--description <s>","Description").option("--severity <s>","INFO|LOW|MEDIUM|HIGH|CRITICAL").option("--classification <c>","UNCLASSIFIED|CONFIDENTIAL|SECRET|TOP_SECRET").option("--entity <id>","Associated entity ID").option("--indicator <id>","Associated indicator ID").option("--mission <id>","Associated mission ID").option("--assigned-to <id>","Assignee user ID").option("-f, --format <format>","Output format").action(async t=>{try{let i$1={title:t.title};t.description&&(i$1.description=t.description),t.severity&&(i$1.severity=t.severity.toUpperCase()),t.classification&&(i$1.classification=t.classification.toUpperCase()),t.entity&&(i$1.entityId=t.entity),t.indicator&&(i$1.indicatorId=t.indicator),t.mission&&(i$1.missionId=t.mission),t.assignedTo&&(i$1.assignedToId=t.assignedTo);let e=await b$1(Q,{input:i$1});k$1(`Alert raised: ${e.intRaiseAlert.title}`),i(t,e.intRaiseAlert);}catch(i){h$1(i);}}),n.command("transition").description("Triage an alert through its lifecycle").argument("<id>","Alert ID").requiredOption("--status <s>","OPEN|TRIAGED|ESCALATED|RESOLVED|FALSE_POSITIVE|SUPPRESSED").option("--triage-notes <s>","Triage notes").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e=await b$1(Z,{id:t,status:i$1.status.toUpperCase(),triageNotes:i$1.triageNotes});k$1(`Alert status set to ${e.intTransitionAlert.status}`),i(i$1,e.intTransitionAlert);}catch(e){h$1(e);}});}function It(r$1){let n=r$1.command("reports").description("IntelWatchtower intelligence reports");n.command("list").description("List reports").option("--mission <id>","Filter by mission ID").option("--type <t>","SITREP|INTSUM|SPOT_REPORT|ASSESSMENT|WARNING").option("--status <s>","DRAFT|IN_REVIEW|RELEASED|RECALLED|ARCHIVED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let i$1=await b$1(X,{missionId:t.mission,type:t.type?t.type.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,i$1.intListReports.items,{headers:["ID","Title","Type","Classification","Status"],rows:i$1.intListReports.items.map(e=>[r(e.id,12),e.title,e.type,e.classification,e.status])});}catch(i){h$1(i);}}),n.command("create").description("Create an intelligence report").requiredOption("--title <t>","Report title").option("--type <t>","SITREP|INTSUM|SPOT_REPORT|ASSESSMENT|WARNING").option("--summary <s>","Summary").option("--body <s>","Body").option("--author <id>","Author user ID").option("--case <id>","Associated case ID").option("--mission <id>","Associated mission ID").option("--file <id>","Rendered product file ID (wspace-files-svc)").option("--classification <c>","UNCLASSIFIED|CONFIDENTIAL|SECRET|TOP_SECRET").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let i$1={title:t.title};t.type&&(i$1.type=t.type.toUpperCase()),t.summary&&(i$1.summary=t.summary),t.body&&(i$1.body=t.body),t.author&&(i$1.authorId=t.author),t.case&&(i$1.caseId=t.case),t.mission&&(i$1.missionId=t.mission),t.file&&(i$1.fileId=t.file),t.classification&&(i$1.classification=t.classification.toUpperCase()),t.tags&&(i$1.tags=m(t.tags));let e=await b$1(tt,{input:i$1});k$1(`Report created: ${e.intCreateReport.title}`),i(t,e.intCreateReport);}catch(i){h$1(i);}}),n.command("release").description("Release a report").argument("<id>","Report ID").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e=await b$1(it,{id:t});k$1("Report released"),i(i$1,e.intReleaseReport);}catch(e){h$1(e);}});}function ft(r){r.command("health").description("IntelWatchtower service health check (public)").option("-f, --format <format>","Output format").action(async n=>{try{let t=await d(et);k$1(t.intHealth),i(n,{health:t.intHealth});}catch(t){h$1(t);}});}var lt={id:"intelwatchtower",version:"1.0.0",displayName:"IntelWatchtower",dependsOn:["auth","workspaces"],register(r,n){a(n);let t=r.command("intelwatchtower").description("IntelWatchtower intelligence operations platform");nt(t),st(t),ot(t),at(t),rt(t),ct(t),dt(t),pt(t),mt(t),ut(t),It(t),ft(t);}},yi=lt;export{yi as default};
|
|
323
|
+
`;function y(r,n){try{return JSON.parse(n)}catch{throw new o(`--${r} must be valid JSON`)}}function p(r){let n=Number.parseInt(r,10);if(Number.isNaN(n))throw new o(`Expected an integer but got "${r}"`);return n}function g(r){let n=Number.parseFloat(r);if(Number.isNaN(n))throw new o(`Expected a number but got "${r}"`);return n}function m(r){return r.split(",").map(n=>n.trim()).filter(n=>n.length>0)}function nt(r$1){let n=r$1.command("sources").description("IntelWatchtower collection sources");n.command("list").description("List collection sources").option("--discipline <d>","HUMINT|SIGINT|GEOINT|OSINT|IMINT|MASINT|CYBER").option("--status <s>","PROVISIONING|ACTIVE|DEGRADED|OFFLINE|RETIRED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let i$1=await b$1(S,{discipline:t.discipline?t.discipline.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,i$1.intListSources.items,{headers:["ID","Name","Discipline","Status","Reliability"],rows:i$1.intListSources.items.map(e=>[r(e.id,12),e.name,e.discipline,e.status,String(e.reliability??0)])});}catch(i){h$1(i);}}),n.command("get").description("Get a source by id").argument("<id>","Source ID").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e=await b$1(A,{id:t});if(!e.intSource)throw new o(`Source ${t} not found`);i(i$1,e.intSource);}catch(e){h$1(e);}}),n.command("create").description("Create a collection source").requiredOption("--name <name>","Source name").requiredOption("--discipline <d>","HUMINT|SIGINT|GEOINT|OSINT|IMINT|MASINT|CYBER").option("--codename <c>","Codename").option("--description <s>","Description").option("--operator <id>","Operator user ID").option("--region <r>","Region").option("--reliability <n>","Reliability (0-100)",p).option("--status <s>","PROVISIONING|ACTIVE|DEGRADED|OFFLINE|RETIRED").option("--classification <c>","UNCLASSIFIED|CONFIDENTIAL|SECRET|TOP_SECRET").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let i$1={name:t.name,discipline:t.discipline.toUpperCase()};t.codename&&(i$1.codename=t.codename),t.description&&(i$1.description=t.description),t.operator&&(i$1.operatorId=t.operator),t.region&&(i$1.region=t.region),t.reliability!==void 0&&(i$1.reliability=t.reliability),t.status&&(i$1.status=t.status.toUpperCase()),t.classification&&(i$1.classification=t.classification.toUpperCase()),t.tags&&(i$1.tags=m(t.tags));let e=await b$1(R,{input:i$1});k$1(`Source created: ${e.intCreateSource.name}`),i(t,e.intCreateSource);}catch(i){h$1(i);}}),n.command("update").description("Update a collection source").argument("<id>","Source ID").option("--name <name>","Source name").option("--discipline <d>","HUMINT|SIGINT|GEOINT|OSINT|IMINT|MASINT|CYBER").option("--codename <c>","Codename").option("--description <s>","Description").option("--operator <id>","Operator user ID").option("--region <r>","Region").option("--reliability <n>","Reliability (0-100)",p).option("--status <s>","PROVISIONING|ACTIVE|DEGRADED|OFFLINE|RETIRED").option("--classification <c>","UNCLASSIFIED|CONFIDENTIAL|SECRET|TOP_SECRET").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e={};if(i$1.name&&(e.name=i$1.name),i$1.discipline&&(e.discipline=i$1.discipline.toUpperCase()),i$1.codename&&(e.codename=i$1.codename),i$1.description!==void 0&&(e.description=i$1.description),i$1.operator&&(e.operatorId=i$1.operator),i$1.region&&(e.region=i$1.region),i$1.reliability!==void 0&&(e.reliability=i$1.reliability),i$1.status&&(e.status=i$1.status.toUpperCase()),i$1.classification&&(e.classification=i$1.classification.toUpperCase()),i$1.tags&&(e.tags=m(i$1.tags)),!Object.keys(e).length)throw new o("No updates specified");let E=await b$1(O,{id:t,input:e});k$1("Source updated"),i(i$1,E.intUpdateSource);}catch(e){h$1(e);}}),n.command("retire").description("Retire (delete) a collection source").argument("<id>","Source ID").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e=await b$1(N,{id:t});k$1(`Source retired: ${e.intRetireSource}`),i(i$1,{retired:e.intRetireSource});}catch(e){h$1(e);}});}function st(r$1){let n=r$1.command("entities").description("IntelWatchtower entities of interest");n.command("list").description("List entities").option("--type <t>","PERSON|ORGANIZATION|LOCATION|FACILITY|VEHICLE|VESSEL|AIRCRAFT|EVENT|NETWORK_NODE").option("--confidence <c>","LOW|MODERATE|HIGH|CONFIRMED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let i$1=await b$1(w,{type:t.type?t.type.toUpperCase():void 0,confidence:t.confidence?t.confidence.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,i$1.intListEntities.items,{headers:["ID","Name","Type","Confidence","Threat"],rows:i$1.intListEntities.items.map(e=>[r(e.id,12),e.name,e.type,e.confidence,String(e.threatScore??0)])});}catch(i){h$1(i);}}),n.command("get").description("Get an entity by id").argument("<id>","Entity ID").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e=await b$1(D,{id:t});if(!e.intEntity)throw new o(`Entity ${t} not found`);i(i$1,e.intEntity);}catch(e){h$1(e);}}),n.command("create").description("Create an entity of interest").requiredOption("--name <name>","Entity name").requiredOption("--type <t>","PERSON|ORGANIZATION|LOCATION|FACILITY|VEHICLE|VESSEL|AIRCRAFT|EVENT|NETWORK_NODE").option("--description <s>","Description").option("--confidence <c>","LOW|MODERATE|HIGH|CONFIRMED").option("--classification <c>","UNCLASSIFIED|CONFIDENTIAL|SECRET|TOP_SECRET").option("--aliases <csv>","Comma-separated aliases").option("--latitude <n>","Latitude",g).option("--longitude <n>","Longitude",g).option("--threat-score <n>","Threat score",p).option("--tags <csv>","Comma-separated tags").option("--attributes <json>","Attributes JSON").option("-f, --format <format>","Output format").action(async t=>{try{let i$1={name:t.name,type:t.type.toUpperCase()};t.description&&(i$1.description=t.description),t.confidence&&(i$1.confidence=t.confidence.toUpperCase()),t.classification&&(i$1.classification=t.classification.toUpperCase()),t.aliases&&(i$1.aliases=m(t.aliases)),t.latitude!==void 0&&(i$1.latitude=t.latitude),t.longitude!==void 0&&(i$1.longitude=t.longitude),t.threatScore!==void 0&&(i$1.threatScore=t.threatScore),t.tags&&(i$1.tags=m(t.tags)),t.attributes&&(i$1.attributes=y("attributes",t.attributes));let e=await b$1(L,{input:i$1});k$1(`Entity created: ${e.intCreateEntity.name}`),i(t,e.intCreateEntity);}catch(i){h$1(i);}}),n.command("update").description("Update an entity of interest").argument("<id>","Entity ID").option("--name <name>","Entity name").option("--description <s>","Description").option("--confidence <c>","LOW|MODERATE|HIGH|CONFIRMED").option("--classification <c>","UNCLASSIFIED|CONFIDENTIAL|SECRET|TOP_SECRET").option("--aliases <csv>","Comma-separated aliases").option("--latitude <n>","Latitude",g).option("--longitude <n>","Longitude",g).option("--threat-score <n>","Threat score",p).option("--tags <csv>","Comma-separated tags").option("--attributes <json>","Attributes JSON").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e={};if(i$1.name&&(e.name=i$1.name),i$1.description!==void 0&&(e.description=i$1.description),i$1.confidence&&(e.confidence=i$1.confidence.toUpperCase()),i$1.classification&&(e.classification=i$1.classification.toUpperCase()),i$1.aliases&&(e.aliases=m(i$1.aliases)),i$1.latitude!==void 0&&(e.latitude=i$1.latitude),i$1.longitude!==void 0&&(e.longitude=i$1.longitude),i$1.threatScore!==void 0&&(e.threatScore=i$1.threatScore),i$1.tags&&(e.tags=m(i$1.tags)),i$1.attributes&&(e.attributes=y("attributes",i$1.attributes)),!Object.keys(e).length)throw new o("No updates specified");let E=await b$1(_,{id:t,input:e});k$1("Entity updated"),i(i$1,E.intUpdateEntity);}catch(e){h$1(e);}});}function ot(r$1){let n=r$1.command("indicators").description("IntelWatchtower indicators (IOCs)");n.command("list").description("List indicators").option("--entity <id>","Filter by entity ID").option("--type <t>","IP_ADDRESS|DOMAIN|URL|EMAIL|FILE_HASH|GEO_COORDINATE|SIGNATURE|BEHAVIOR").option("--active <bool>","true|false",t=>t==="true").option("-f, --format <format>","Output format").action(async t=>{try{let i$1=await b$1(b,{entityId:t.entity,type:t.type?t.type.toUpperCase():void 0,isActive:t.active});i(t,i$1.intListIndicators.items,{headers:["ID","Type","Value","Confidence","Active"],rows:i$1.intListIndicators.items.map(e=>[r(e.id,12),e.type,r(e.value,30),e.confidence,e.isActive?"yes":"no"])});}catch(i){h$1(i);}}),n.command("create").description("Create an indicator").requiredOption("--type <t>","IP_ADDRESS|DOMAIN|URL|EMAIL|FILE_HASH|GEO_COORDINATE|SIGNATURE|BEHAVIOR").requiredOption("--value <v>","Indicator value").option("--entity <id>","Associated entity ID").option("--description <s>","Description").option("--confidence <c>","LOW|MODERATE|HIGH|CONFIRMED").option("--classification <c>","UNCLASSIFIED|CONFIDENTIAL|SECRET|TOP_SECRET").option("--valid-from <iso>","Valid from (ISO date)").option("--valid-until <iso>","Valid until (ISO date)").option("-f, --format <format>","Output format").action(async t=>{try{let i$1={type:t.type.toUpperCase(),value:t.value};t.entity&&(i$1.entityId=t.entity),t.description&&(i$1.description=t.description),t.confidence&&(i$1.confidence=t.confidence.toUpperCase()),t.classification&&(i$1.classification=t.classification.toUpperCase()),t.validFrom&&(i$1.validFrom=t.validFrom),t.validUntil&&(i$1.validUntil=t.validUntil);let e=await b$1(h,{input:i$1});k$1(`Indicator created: ${e.intCreateIndicator.value}`),i(t,e.intCreateIndicator);}catch(i){h$1(i);}}),n.command("deactivate").description("Deactivate an indicator").argument("<id>","Indicator ID").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e=await b$1(k,{id:t});k$1("Indicator deactivated"),i(i$1,e.intDeactivateIndicator);}catch(e){h$1(e);}});}function at(r){r.command("feeds").description("IntelWatchtower source feeds").command("create").description("Create a source feed").requiredOption("--name <name>","Feed name").requiredOption("--source <id>","Source ID").option("--endpoint <url>","Feed endpoint URL").option("--format <fmt>","Feed payload format").option("--status <s>","CONNECTED|DISCONNECTED|ERROR|STALE").option("-f, --output-format <format>","Output format").action(async t=>{try{let i$1={name:t.name,sourceId:t.source};t.endpoint&&(i$1.endpoint=t.endpoint),t.format&&(i$1.format=t.format),t.status&&(i$1.status=t.status.toUpperCase());let e=await b$1($,{input:i$1});k$1(`Feed created: ${e.intCreateFeed.name}`),i({format:t.outputFormat},e.intCreateFeed);}catch(i){h$1(i);}});}function rt(r$1){let n=r$1.command("missions").description("IntelWatchtower missions");n.command("list").description("List missions").option("--status <s>","PLANNING|READY|ACTIVE|PAUSED|COMPLETED|ABORTED").option("-f, --format <format>","Output format").action(async t=>{try{let i$1=await b$1(U,{status:t.status?t.status.toUpperCase():void 0});i(t,i$1.intListMissions.items,{headers:["ID","Name","Codename","Classification","Status"],rows:i$1.intListMissions.items.map(e=>[r(e.id,12),e.name,e.codename??"-",e.classification,e.status])});}catch(i){h$1(i);}}),n.command("get").description("Get a mission by id").argument("<id>","Mission ID").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e=await b$1(v,{id:t});if(!e.intMission)throw new o(`Mission ${t} not found`);i(i$1,e.intMission);}catch(e){h$1(e);}}),n.command("create").description("Create a mission").requiredOption("--name <name>","Mission name").option("--codename <c>","Codename").option("--objective <s>","Objective").option("--commander <id>","Commander user ID").option("--classification <c>","UNCLASSIFIED|CONFIDENTIAL|SECRET|TOP_SECRET").option("--start-at <iso>","Start (ISO date)").option("--end-at <iso>","End (ISO date)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let i$1={name:t.name};t.codename&&(i$1.codename=t.codename),t.objective&&(i$1.objective=t.objective),t.commander&&(i$1.commanderId=t.commander),t.classification&&(i$1.classification=t.classification.toUpperCase()),t.startAt&&(i$1.startAt=t.startAt),t.endAt&&(i$1.endAt=t.endAt),t.tags&&(i$1.tags=m(t.tags));let e=await b$1(M,{input:i$1});k$1(`Mission created: ${e.intCreateMission.name}`),i(t,e.intCreateMission);}catch(i){h$1(i);}}),n.command("transition").description("Transition a mission to a new status").argument("<id>","Mission ID").requiredOption("--status <s>","PLANNING|READY|ACTIVE|PAUSED|COMPLETED|ABORTED").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e=await b$1(q,{id:t,status:i$1.status.toUpperCase()});k$1(`Mission status set to ${e.intTransitionMission.status}`),i(i$1,e.intTransitionMission);}catch(e){h$1(e);}});}function ct(r$1){let n=r$1.command("cases").description("IntelWatchtower investigation cases");n.command("list").description("List cases").option("--mission <id>","Filter by mission ID").option("--status <s>","OPEN|ACTIVE|PENDING_REVIEW|CLOSED|ARCHIVED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let i$1=await b$1(P,{missionId:t.mission,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,i$1.intListCases.items,{headers:["ID","Title","Classification","Status","Priority"],rows:i$1.intListCases.items.map(e=>[r(e.id,12),e.title,e.classification,e.status,e.priority])});}catch(i){h$1(i);}}),n.command("get").description("Get a case by id").argument("<id>","Case ID").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e=await b$1(F,{id:t});if(!e.intCase)throw new o(`Case ${t} not found`);i(i$1,e.intCase);}catch(e){h$1(e);}}),n.command("create").description("Open a new case").requiredOption("--title <t>","Case title").option("--summary <s>","Summary").option("--reference <r>","External reference").option("--mission <id>","Mission ID").option("--lead-analyst <id>","Lead analyst user ID").option("--priority <p>","ROUTINE|PRIORITY|IMMEDIATE|FLASH").option("--classification <c>","UNCLASSIFIED|CONFIDENTIAL|SECRET|TOP_SECRET").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let i$1={title:t.title};t.summary&&(i$1.summary=t.summary),t.reference&&(i$1.reference=t.reference),t.mission&&(i$1.missionId=t.mission),t.leadAnalyst&&(i$1.leadAnalystId=t.leadAnalyst),t.priority&&(i$1.priority=t.priority.toUpperCase()),t.classification&&(i$1.classification=t.classification.toUpperCase()),t.tags&&(i$1.tags=m(t.tags));let e=await b$1(x,{input:i$1});k$1(`Case created: ${e.intCreateCase.title}`),i(t,e.intCreateCase);}catch(i){h$1(i);}}),n.command("close").description("Close a case").argument("<id>","Case ID").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e=await b$1(H,{id:t});k$1("Case closed"),i(i$1,e.intCloseCase);}catch(e){h$1(e);}}),n.command("add-entry").description("Add an entry to a case log").requiredOption("--case <id>","Case ID").requiredOption("--kind <k>","Entry kind (e.g. note, evidence, action)").requiredOption("--body <text>","Entry body").option("--file <id>","Evidence file ID (wspace-files-svc)").option("-f, --format <format>","Output format").action(async t=>{try{let i$1={caseId:t.case,kind:t.kind,body:t.body};t.file&&(i$1.fileId=t.file);let e=await b$1(W,{input:i$1});k$1("Case entry added"),i(t,e.intAddCaseEntry);}catch(i){h$1(i);}});}function dt(r$1){let n=r$1.command("requirements").description("IntelWatchtower collection requirements");n.command("list").description("List collection requirements").option("--mission <id>","Filter by mission ID").option("--status <s>","DRAFT|SUBMITTED|APPROVED|TASKED|SATISFIED|CANCELLED").option("-f, --format <format>","Output format").action(async t=>{try{let i$1=await b$1(G,{missionId:t.mission,status:t.status?t.status.toUpperCase():void 0});i(t,i$1.intListRequirements.items,{headers:["ID","Title","Classification","Priority","Status"],rows:i$1.intListRequirements.items.map(e=>[r(e.id,12),e.title,e.classification,e.priority,e.status])});}catch(i){h$1(i);}}),n.command("create").description("Create a collection requirement").requiredOption("--title <t>","Requirement title").option("--description <s>","Description").option("--mission <id>","Mission ID").option("--requested-by <id>","Requesting user ID").option("--priority <p>","ROUTINE|PRIORITY|IMMEDIATE|FLASH").option("--classification <c>","UNCLASSIFIED|CONFIDENTIAL|SECRET|TOP_SECRET").option("--due-date <iso>","Due date (ISO date)").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let i$1={title:t.title};t.description&&(i$1.description=t.description),t.mission&&(i$1.missionId=t.mission),t.requestedBy&&(i$1.requestedById=t.requestedBy),t.priority&&(i$1.priority=t.priority.toUpperCase()),t.classification&&(i$1.classification=t.classification.toUpperCase()),t.dueDate&&(i$1.dueDate=t.dueDate),t.tags&&(i$1.tags=m(t.tags));let e=await b$1(V,{input:i$1});k$1(`Requirement created: ${e.intCreateRequirement.title}`),i(t,e.intCreateRequirement);}catch(i){h$1(i);}});}function pt(r$1){let n=r$1.command("tasks").description("IntelWatchtower collection tasks (taskings)");n.command("list").description("List collection tasks").option("--source <id>","Filter by source ID").option("--requirement <id>","Filter by requirement ID").option("--status <s>","PENDING|DISPATCHED|COLLECTING|COMPLETED|FAILED|CANCELLED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let i$1=await b$1(B,{sourceId:t.source,requirementId:t.requirement,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,i$1.intListTasks.items,{headers:["ID","Source","Requirement","Status"],rows:i$1.intListTasks.items.map(e=>[r(e.id,12),r(e.sourceId,12),e.requirementId?r(e.requirementId,12):"-",e.status])});}catch(i){h$1(i);}}),n.command("create").description("Create a collection task against a source").requiredOption("--source <id>","Source ID").option("--requirement <id>","Requirement ID").option("--instructions <s>","Tasking instructions").option("--start-at <iso>","Start (ISO date)").option("--end-at <iso>","End (ISO date)").option("-f, --format <format>","Output format").action(async t=>{try{let i$1={sourceId:t.source};t.requirement&&(i$1.requirementId=t.requirement),t.instructions&&(i$1.instructions=t.instructions),t.startAt&&(i$1.startAt=t.startAt),t.endAt&&(i$1.endAt=t.endAt);let e=await b$1(Y,{input:i$1});k$1(`Task created: ${e.intCreateTask.id}`),i(t,e.intCreateTask);}catch(i){h$1(i);}}),n.command("transition").description("Advance a collection task to a new status").argument("<id>","Task ID").requiredOption("--status <s>","PENDING|DISPATCHED|COLLECTING|COMPLETED|FAILED|CANCELLED").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e=await b$1(j,{id:t,status:i$1.status.toUpperCase()});k$1(`Task status set to ${e.intTransitionTask.status}`),i(i$1,e.intTransitionTask);}catch(e){h$1(e);}});}function mt(r$1){let n=r$1.command("observations").description("IntelWatchtower observations (collected reporting)");n.command("list").description("List observations").option("--entity <id>","Filter by entity ID").option("--source <id>","Filter by source ID").option("--task <id>","Filter by task ID").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let i$1=await b$1(K,{entityId:t.entity,sourceId:t.source,taskId:t.task,pagination:{limit:t.limit,offset:t.offset}});i(t,i$1.intListObservations.items,{headers:["ID","Source","Classification","Summary"],rows:i$1.intListObservations.items.map(e=>[r(e.id,12),r(e.sourceId,12),e.classification,r(e.summary,40)])});}catch(i){h$1(i);}}),n.command("record").description("Record an observation").requiredOption("--source <id>","Source ID").requiredOption("--summary <s>","Observation summary").requiredOption("--observed-at <iso>","Observed at (ISO date)").option("--entity <id>","Associated entity ID").option("--task <id>","Associated task ID").option("--classification <c>","UNCLASSIFIED|CONFIDENTIAL|SECRET|TOP_SECRET").option("--latitude <n>","Latitude",g).option("--longitude <n>","Longitude",g).option("--payload <json>","Payload JSON").option("-f, --format <format>","Output format").action(async t=>{try{let i$1={sourceId:t.source,summary:t.summary,observedAt:t.observedAt};t.entity&&(i$1.entityId=t.entity),t.task&&(i$1.taskId=t.task),t.classification&&(i$1.classification=t.classification.toUpperCase()),t.latitude!==void 0&&(i$1.latitude=t.latitude),t.longitude!==void 0&&(i$1.longitude=t.longitude),t.payload&&(i$1.payload=y("payload",t.payload));let e=await b$1(J,{input:i$1});k$1(`Observation recorded: ${e.intRecordObservation.id}`),i(t,e.intRecordObservation);}catch(i){h$1(i);}});}function ut(r$1){let n=r$1.command("alerts").description("IntelWatchtower alerts");n.command("list").description("List alerts").option("--entity <id>","Filter by entity ID").option("--severity <s>","INFO|LOW|MEDIUM|HIGH|CRITICAL").option("--status <s>","OPEN|TRIAGED|ESCALATED|RESOLVED|FALSE_POSITIVE|SUPPRESSED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let i$1=await b$1(z,{entityId:t.entity,severity:t.severity?t.severity.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,i$1.intListAlerts.items,{headers:["ID","Title","Severity","Status","Classification"],rows:i$1.intListAlerts.items.map(e=>[r(e.id,12),e.title,e.severity,e.status,e.classification])});}catch(i){h$1(i);}}),n.command("raise").description("Raise a new alert").requiredOption("--title <t>","Alert title").option("--description <s>","Description").option("--severity <s>","INFO|LOW|MEDIUM|HIGH|CRITICAL").option("--classification <c>","UNCLASSIFIED|CONFIDENTIAL|SECRET|TOP_SECRET").option("--entity <id>","Associated entity ID").option("--indicator <id>","Associated indicator ID").option("--mission <id>","Associated mission ID").option("--assigned-to <id>","Assignee user ID").option("-f, --format <format>","Output format").action(async t=>{try{let i$1={title:t.title};t.description&&(i$1.description=t.description),t.severity&&(i$1.severity=t.severity.toUpperCase()),t.classification&&(i$1.classification=t.classification.toUpperCase()),t.entity&&(i$1.entityId=t.entity),t.indicator&&(i$1.indicatorId=t.indicator),t.mission&&(i$1.missionId=t.mission),t.assignedTo&&(i$1.assignedToId=t.assignedTo);let e=await b$1(Q,{input:i$1});k$1(`Alert raised: ${e.intRaiseAlert.title}`),i(t,e.intRaiseAlert);}catch(i){h$1(i);}}),n.command("transition").description("Triage an alert through its lifecycle").argument("<id>","Alert ID").requiredOption("--status <s>","OPEN|TRIAGED|ESCALATED|RESOLVED|FALSE_POSITIVE|SUPPRESSED").option("--triage-notes <s>","Triage notes").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e=await b$1(Z,{id:t,status:i$1.status.toUpperCase(),triageNotes:i$1.triageNotes});k$1(`Alert status set to ${e.intTransitionAlert.status}`),i(i$1,e.intTransitionAlert);}catch(e){h$1(e);}});}function It(r$1){let n=r$1.command("reports").description("IntelWatchtower intelligence reports");n.command("list").description("List reports").option("--mission <id>","Filter by mission ID").option("--type <t>","SITREP|INTSUM|SPOT_REPORT|ASSESSMENT|WARNING").option("--status <s>","DRAFT|IN_REVIEW|RELEASED|RECALLED|ARCHIVED").option("--limit <n>","Page size",p,50).option("--offset <n>","Offset",p,0).option("-f, --format <format>","Output format").action(async t=>{try{let i$1=await b$1(X,{missionId:t.mission,type:t.type?t.type.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});i(t,i$1.intListReports.items,{headers:["ID","Title","Type","Classification","Status"],rows:i$1.intListReports.items.map(e=>[r(e.id,12),e.title,e.type,e.classification,e.status])});}catch(i){h$1(i);}}),n.command("create").description("Create an intelligence report").requiredOption("--title <t>","Report title").option("--type <t>","SITREP|INTSUM|SPOT_REPORT|ASSESSMENT|WARNING").option("--summary <s>","Summary").option("--body <s>","Body").option("--author <id>","Author user ID").option("--case <id>","Associated case ID").option("--mission <id>","Associated mission ID").option("--file <id>","Rendered product file ID (wspace-files-svc)").option("--classification <c>","UNCLASSIFIED|CONFIDENTIAL|SECRET|TOP_SECRET").option("--tags <csv>","Comma-separated tags").option("-f, --format <format>","Output format").action(async t=>{try{let i$1={title:t.title};t.type&&(i$1.type=t.type.toUpperCase()),t.summary&&(i$1.summary=t.summary),t.body&&(i$1.body=t.body),t.author&&(i$1.authorId=t.author),t.case&&(i$1.caseId=t.case),t.mission&&(i$1.missionId=t.mission),t.file&&(i$1.fileId=t.file),t.classification&&(i$1.classification=t.classification.toUpperCase()),t.tags&&(i$1.tags=m(t.tags));let e=await b$1(tt,{input:i$1});k$1(`Report created: ${e.intCreateReport.title}`),i(t,e.intCreateReport);}catch(i){h$1(i);}}),n.command("release").description("Release a report").argument("<id>","Report ID").option("-f, --format <format>","Output format").action(async(t,i$1)=>{try{let e=await b$1(it,{id:t});k$1("Report released"),i(i$1,e.intReleaseReport);}catch(e){h$1(e);}});}function ft(r){r.command("health").description("IntelWatchtower service health check (public)").option("-f, --format <format>","Output format").action(async n=>{try{let t=await d(et);k$1(t.intHealth),i(n,{health:t.intHealth});}catch(t){h$1(t);}});}var lt={id:"intelwatchtower",version:"1.0.0",displayName:"IntelWatchtower",dependsOn:["auth","workspaces"],register(r,n){a(n);let t=r.command("intelwatchtower").description("IntelWatchtower intelligence operations platform");nt(t),st(t),ot(t),at(t),rt(t),ct(t),dt(t),pt(t),mt(t),ut(t),It(t),ft(t);}},yi=lt;export{yi as default};
|
|
@@ -1,20 +1,16 @@
|
|
|
1
|
-
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var
|
|
1
|
+
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var c=class extends Error{exitCode;hint;constructor(n,e){super(n),this.name="CliUserError",this.exitCode=e?.exitCode??1,this.hint=e?.hint;}},I=class extends c{constructor(n,e){super(n,{exitCode:2,hint:e?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},v=class extends Error{cause;constructor(n,e){super(n),this.name="CliInternalError",this.cause=e;}};var O=null;function b(i){O=i;}function y(){if(!O)throw new v("vibecontrols module helpers used before setHelpersContext was called");return O}function ve(){let i=y();if(!i.auth.isAuthenticated())throw new I("Authentication required.",{hint:`Run \`${i.productName} auth login\` to authenticate.`})}async function a(i,n){return ve(),y().gql.workspace.request(i,n)}async function C(i,n){return y().gql.workspaceAuthOnly.request(i,n)}function o(i){let n=i instanceof Error?i.message:String(i);throw new c(n)}function s(i,n,e){y().output.formatAndOutput(i,n,e);}function f(i){y().output.printSuccess(i);}function h(i){return y().output.formatDate(i)}function m(i,n){return y().output.truncate(i,n)}var x=`
|
|
2
2
|
query KadaikodiGetServiceProvider($id: ID!) {
|
|
3
|
-
|
|
3
|
+
kadaikodiServiceProvider(id: $id) {
|
|
4
4
|
id ownerId name slug description category status location
|
|
5
5
|
serviceTypes offeringType businessHours rating totalRatings
|
|
6
6
|
averageOrderValue analyticsSnapshot createdAt updatedAt workspaceId
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
9
|
`,R=`
|
|
10
|
-
query KadaikodiListServiceProviders(
|
|
11
|
-
$filter:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
) {
|
|
15
|
-
listServiceProviders(filter: $filter, limit: $limit, offset: $offset) {
|
|
16
|
-
id name slug category status rating totalRatings averageOrderValue
|
|
17
|
-
offeringType ownerId createdAt
|
|
10
|
+
query KadaikodiListServiceProviders($filter: KadaikodiProviderFilterInput, $pagination: KadaikodiPaginationInput) {
|
|
11
|
+
kadaikodiListServiceProviders(filter: $filter, pagination: $pagination) {
|
|
12
|
+
id name slug category status rating totalRatings averageOrderValue offeringType ownerId
|
|
13
|
+
createdAt
|
|
18
14
|
}
|
|
19
15
|
}
|
|
20
16
|
`,S=`
|
|
@@ -35,65 +31,50 @@
|
|
|
35
31
|
}
|
|
36
32
|
}
|
|
37
33
|
`,P=`
|
|
38
|
-
query KadaikodiListProviderWorkers($providerId: String!, $
|
|
39
|
-
|
|
34
|
+
query KadaikodiListProviderWorkers($providerId: String!, $pagination: KadaikodiPaginationInput) {
|
|
35
|
+
kadaikodiListProviderWorkers(providerId: $providerId, pagination: $pagination) {
|
|
40
36
|
id providerId workerId name role status metadata workspaceId
|
|
41
37
|
}
|
|
42
38
|
}
|
|
43
39
|
`,D=`
|
|
44
|
-
query KadaikodiListWorkerTasks(
|
|
45
|
-
$
|
|
46
|
-
$status: String
|
|
47
|
-
$limit: Int
|
|
48
|
-
$offset: Int
|
|
49
|
-
) {
|
|
50
|
-
listWorkerTasks(
|
|
51
|
-
workerRefId: $workerRefId
|
|
52
|
-
status: $status
|
|
53
|
-
limit: $limit
|
|
54
|
-
offset: $offset
|
|
55
|
-
) {
|
|
40
|
+
query KadaikodiListWorkerTasks($status: KadaikodiWorkerTaskStatus, $pagination: KadaikodiPaginationInput) {
|
|
41
|
+
kadaikodiWorkerTasks(status: $status, pagination: $pagination) {
|
|
56
42
|
id workerRefId title description type status priority orderId
|
|
57
43
|
location dueAt completedAt workspaceId
|
|
58
44
|
}
|
|
59
45
|
}
|
|
60
|
-
|
|
46
|
+
`,L=`
|
|
61
47
|
query KadaikodiGetOffering($id: ID!) {
|
|
62
|
-
|
|
48
|
+
kadaikodiOffering(id: $id) {
|
|
63
49
|
id providerId name slug description category kind serviceType
|
|
64
50
|
price originalPrice stock durationMinutes isAvailable tags
|
|
65
51
|
media metadata createdAt updatedAt workspaceId
|
|
66
52
|
}
|
|
67
53
|
}
|
|
68
|
-
|
|
69
|
-
query KadaikodiListOfferings(
|
|
70
|
-
$kind:
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
$offset: Int
|
|
74
|
-
) {
|
|
75
|
-
listOfferings(kind: $kind, providerId: $providerId, limit: $limit, offset: $offset) {
|
|
76
|
-
id providerId name slug category kind serviceType price originalPrice
|
|
77
|
-
stock isAvailable createdAt
|
|
54
|
+
`,$=`
|
|
55
|
+
query KadaikodiListOfferings($kind: KadaikodiOfferingKind, $providerId: String, $pagination: KadaikodiPaginationInput) {
|
|
56
|
+
kadaikodiListOfferings(kind: $kind, providerId: $providerId, pagination: $pagination) {
|
|
57
|
+
id providerId name slug category kind serviceType price originalPrice stock isAvailable
|
|
58
|
+
createdAt
|
|
78
59
|
}
|
|
79
60
|
}
|
|
80
61
|
`,N=`
|
|
81
62
|
mutation KadaikodiCreateOffering($input: KadaikodiCreateOfferingInput!) {
|
|
82
|
-
|
|
83
|
-
id providerId name slug description category kind serviceType
|
|
84
|
-
|
|
63
|
+
kadaikodiCreateOffering(input: $input) {
|
|
64
|
+
id providerId name slug description category kind serviceType price originalPrice stock
|
|
65
|
+
durationMinutes isAvailable tags createdAt
|
|
85
66
|
}
|
|
86
67
|
}
|
|
87
68
|
`,q=`
|
|
88
69
|
mutation KadaikodiUpdateOffering($id: ID!, $input: KadaikodiUpdateOfferingInput!) {
|
|
89
|
-
|
|
90
|
-
id providerId name slug description category kind serviceType
|
|
91
|
-
|
|
70
|
+
kadaikodiUpdateOffering(id: $id, input: $input) {
|
|
71
|
+
id providerId name slug description category kind serviceType price originalPrice stock
|
|
72
|
+
durationMinutes isAvailable tags updatedAt
|
|
92
73
|
}
|
|
93
74
|
}
|
|
94
75
|
`,_=`
|
|
95
76
|
query KadaikodiGetOrder($id: ID!) {
|
|
96
|
-
|
|
77
|
+
kadaikodiOrder(id: $id) {
|
|
97
78
|
id orderNumber customerId providerId status paymentStatus paymentMethod
|
|
98
79
|
fulfillmentType assignedWorkerId subtotal tax deliveryFee discount total
|
|
99
80
|
deliveryAddress notes timeline createdAt updatedAt workspaceId
|
|
@@ -108,56 +89,48 @@
|
|
|
108
89
|
$customerId: String
|
|
109
90
|
$providerId: String
|
|
110
91
|
$status: KadaikodiOrderStatus
|
|
111
|
-
$
|
|
112
|
-
$offset: Int
|
|
92
|
+
$pagination: KadaikodiPaginationInput
|
|
113
93
|
) {
|
|
114
|
-
|
|
115
|
-
customerId
|
|
116
|
-
|
|
117
|
-
status: $status
|
|
118
|
-
limit: $limit
|
|
119
|
-
offset: $offset
|
|
120
|
-
) {
|
|
121
|
-
id orderNumber customerId providerId status paymentStatus
|
|
122
|
-
fulfillmentType total createdAt
|
|
94
|
+
kadaikodiListOrders(customerId: $customerId, providerId: $providerId, status: $status, pagination: $pagination) {
|
|
95
|
+
id orderNumber customerId providerId status paymentStatus fulfillmentType total
|
|
96
|
+
createdAt
|
|
123
97
|
}
|
|
124
98
|
}
|
|
125
|
-
`,
|
|
99
|
+
`,U=`
|
|
126
100
|
mutation KadaikodiPlaceOrder($input: KadaikodiPlaceOrderInput!) {
|
|
127
|
-
|
|
128
|
-
id orderNumber customerId providerId status paymentStatus
|
|
129
|
-
|
|
101
|
+
kadaikodiPlaceOrder(input: $input) {
|
|
102
|
+
id orderNumber customerId providerId status paymentStatus fulfillmentType subtotal tax
|
|
103
|
+
deliveryFee discount total createdAt
|
|
130
104
|
items { id name quantity unitPrice totalPrice }
|
|
131
105
|
}
|
|
132
106
|
}
|
|
133
|
-
`,
|
|
107
|
+
`,F=`
|
|
134
108
|
mutation KadaikodiUpdateOrderStatus($id: ID!, $status: KadaikodiOrderStatus!) {
|
|
135
|
-
|
|
109
|
+
kadaikodiUpdateOrderStatus(id: $id, status: $status) {
|
|
136
110
|
id orderNumber status paymentStatus total updatedAt
|
|
137
111
|
}
|
|
138
112
|
}
|
|
139
|
-
`,
|
|
140
|
-
query KadaikodiListReviews($providerId: String!, $
|
|
141
|
-
|
|
142
|
-
id providerId customerId orderId rating review response
|
|
143
|
-
createdAt updatedAt workspaceId
|
|
113
|
+
`,W=`
|
|
114
|
+
query KadaikodiListReviews($providerId: String!, $pagination: KadaikodiPaginationInput) {
|
|
115
|
+
kadaikodiListReviews(providerId: $providerId, pagination: $pagination) {
|
|
116
|
+
id providerId customerId orderId rating review response createdAt updatedAt workspaceId
|
|
144
117
|
}
|
|
145
118
|
}
|
|
146
119
|
`,K=`
|
|
147
120
|
mutation KadaikodiCreateReview($input: KadaikodiCreateReviewInput!) {
|
|
148
|
-
|
|
121
|
+
kadaikodiCreateReview(input: $input) {
|
|
149
122
|
id providerId customerId orderId rating review response createdAt
|
|
150
123
|
}
|
|
151
124
|
}
|
|
152
125
|
`,V=`
|
|
153
126
|
mutation KadaikodiRespondToReview($id: ID!, $response: String!) {
|
|
154
|
-
|
|
127
|
+
kadaikodiRespondToReview(id: $id, response: $response) {
|
|
155
128
|
id providerId customerId rating review response updatedAt
|
|
156
129
|
}
|
|
157
130
|
}
|
|
158
131
|
`,G=`
|
|
159
132
|
query KadaikodiGetInvestmentOpportunity($id: ID!) {
|
|
160
|
-
|
|
133
|
+
kadaikodiInvestmentOpportunity(id: $id) {
|
|
161
134
|
id providerId title description riskLevel status targetAmount
|
|
162
135
|
raisedAmount minimumInvestment expectedReturnsPct lockInMonths
|
|
163
136
|
businessMetrics terms expiresAt createdAt updatedAt workspaceId
|
|
@@ -167,24 +140,18 @@
|
|
|
167
140
|
query KadaikodiListInvestmentOpportunities(
|
|
168
141
|
$riskLevel: KadaikodiRiskLevel
|
|
169
142
|
$status: KadaikodiInvestmentStatus
|
|
170
|
-
$
|
|
171
|
-
$offset: Int
|
|
143
|
+
$pagination: KadaikodiPaginationInput
|
|
172
144
|
) {
|
|
173
|
-
|
|
174
|
-
riskLevel
|
|
175
|
-
|
|
176
|
-
limit: $limit
|
|
177
|
-
offset: $offset
|
|
178
|
-
) {
|
|
179
|
-
id providerId title riskLevel status targetAmount raisedAmount
|
|
180
|
-
minimumInvestment expectedReturnsPct lockInMonths expiresAt createdAt
|
|
145
|
+
kadaikodiListInvestmentOpportunities(riskLevel: $riskLevel, status: $status, pagination: $pagination) {
|
|
146
|
+
id providerId title riskLevel status targetAmount raisedAmount minimumInvestment
|
|
147
|
+
expectedReturnsPct lockInMonths expiresAt createdAt
|
|
181
148
|
}
|
|
182
149
|
}
|
|
183
150
|
`,H=`
|
|
184
|
-
query KadaikodiListInvestments($
|
|
185
|
-
|
|
186
|
-
id investorId opportunityId amount currentValue realizedReturns
|
|
187
|
-
|
|
151
|
+
query KadaikodiListInvestments($pagination: KadaikodiPaginationInput) {
|
|
152
|
+
kadaikodiListInvestments(pagination: $pagination) {
|
|
153
|
+
id investorId opportunityId amount currentValue realizedReturns expectedReturnsPct
|
|
154
|
+
status investedAt maturedAt workspaceId
|
|
188
155
|
transactions { id investmentId type amount notes createdAt }
|
|
189
156
|
}
|
|
190
157
|
}
|
|
@@ -192,17 +159,16 @@
|
|
|
192
159
|
mutation KadaikodiCreateInvestmentOpportunity(
|
|
193
160
|
$input: KadaikodiCreateInvestmentOpportunityInput!
|
|
194
161
|
) {
|
|
195
|
-
|
|
196
|
-
id providerId title description riskLevel status targetAmount
|
|
197
|
-
|
|
198
|
-
expiresAt createdAt
|
|
162
|
+
kadaikodiCreateInvestmentOpportunity(input: $input) {
|
|
163
|
+
id providerId title description riskLevel status targetAmount raisedAmount
|
|
164
|
+
minimumInvestment expectedReturnsPct lockInMonths expiresAt createdAt
|
|
199
165
|
}
|
|
200
166
|
}
|
|
201
167
|
`,z=`
|
|
202
168
|
mutation KadaikodiInvest($input: KadaikodiInvestInput!) {
|
|
203
|
-
|
|
204
|
-
id investorId opportunityId amount currentValue realizedReturns
|
|
205
|
-
|
|
169
|
+
kadaikodiInvest(input: $input) {
|
|
170
|
+
id investorId opportunityId amount currentValue realizedReturns expectedReturnsPct
|
|
171
|
+
status investedAt
|
|
206
172
|
}
|
|
207
173
|
}
|
|
208
174
|
`,B=`
|
|
@@ -223,4 +189,4 @@
|
|
|
223
189
|
query KadaikodiHealth {
|
|
224
190
|
kadaikodiHealth
|
|
225
191
|
}
|
|
226
|
-
`;function l(i,n){try{return JSON.parse(n)}catch{throw new u(`--${i} must be valid JSON`)}}function d(i){let n=Number.parseInt(i,10);if(Number.isNaN(n))throw new u(`Expected an integer but got "${i}"`);return n}function g(i){let n=Number.parseFloat(i);if(Number.isNaN(n))throw new u(`Expected a number but got "${i}"`);return n}function X(i){let n=i.command("providers").description("Kadaikodi service providers");n.command("list").description("List service providers").option("--category <c>","Filter by service category").option("--status <s>","Filter by provider status").option("--query <q>","Free-text search").option("--open-only","Only providers currently open").option("--limit <n>","Page size",d,50).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async e=>{try{let t={};e.category&&(t.category=e.category.toUpperCase()),e.status&&(t.status=e.status.toUpperCase()),e.query&&(t.query=e.query),e.openOnly&&(t.openOnly=!0);let r=await a(R,{filter:Object.keys(t).length?t:void 0,limit:e.limit,offset:e.offset});s(e,r.listServiceProviders,{headers:["ID","Name","Category","Status","Rating"],rows:r.listServiceProviders.map(f=>[p(f.id,12),f.name,f.category,f.status,`${f.rating??0} (${f.totalRatings??0})`])});}catch(t){o(t);}}),n.command("get").description("Get a service provider by id").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(x,{id:e});if(!r.getServiceProvider)throw new u(`Provider ${e} not found`);s(t,r.getServiceProvider);}catch(r){o(r);}}),n.command("create").description("Create a service provider").requiredOption("--owner <id>","Owner user ID").requiredOption("--name <name>","Provider name").requiredOption("--slug <slug>","URL slug").requiredOption("--category <c>","Service category").requiredOption("--location <json>","Location JSON (address/latitude/longitude)").option("--description <s>","Description").option("--offering-type <t>","product|service|both","both").option("--service-types <csv>","Comma-separated service types").option("--business-hours <json>","Business hours JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={ownerId:e.owner,name:e.name,slug:e.slug,category:e.category.toUpperCase(),location:l("location",e.location),offeringType:e.offeringType??"both"};e.description&&(t.description=e.description),e.serviceTypes&&(t.serviceTypes=e.serviceTypes.split(",").map(f=>f.trim())),e.businessHours&&(t.businessHours=l("business-hours",e.businessHours));let r=await a(S,{input:t});m(`Provider created: ${r.kadaikodiCreateServiceProvider.name}`),s(e,r.kadaikodiCreateServiceProvider);}catch(t){o(t);}}),n.command("update").description("Update a service provider").argument("<id>","Provider ID").option("--name <name>","Provider name").option("--description <s>","Description").option("--status <s>","Provider status").option("--location <json>","Location JSON").option("--service-types <csv>","Comma-separated service types").option("--business-hours <json>","Business hours JSON").option("--analytics-snapshot <json>","Analytics snapshot JSON").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r={};if(t.name&&(r.name=t.name),t.description!==void 0&&(r.description=t.description),t.status&&(r.status=t.status.toUpperCase()),t.location&&(r.location=l("location",t.location)),t.serviceTypes&&(r.serviceTypes=t.serviceTypes.split(",").map(w=>w.trim())),t.businessHours&&(r.businessHours=l("business-hours",t.businessHours)),t.analyticsSnapshot&&(r.analyticsSnapshot=l("analytics-snapshot",t.analyticsSnapshot)),!Object.keys(r).length)throw new u("No updates specified");let f=await a(A,{id:e,input:r});m("Provider updated"),s(t,f.kadaikodiUpdateServiceProvider);}catch(r){o(r);}});}function Z(i){i.command("workers").description("Kadaikodi provider workers").command("list").description("List workers for a provider").requiredOption("--provider <id>","Provider ID").option("--limit <n>","Page size",d,50).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(P,{providerId:e.provider,limit:e.limit,offset:e.offset});s(e,t.listProviderWorkers,{headers:["ID","Name","Role","Status","Worker"],rows:t.listProviderWorkers.map(r=>[p(r.id,12),r.name,r.role,r.status,p(r.workerId,12)])});}catch(t){o(t);}});}function ee(i){i.command("tasks").description("Kadaikodi worker tasks").command("list").description("List tasks for a worker").requiredOption("--worker <id>","Worker ref ID").option("--status <s>","Filter by status").option("--limit <n>","Page size",d,50).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(D,{workerRefId:e.worker,status:e.status,limit:e.limit,offset:e.offset});s(e,t.listWorkerTasks,{headers:["ID","Title","Type","Status","Priority","Due"],rows:t.listWorkerTasks.map(r=>[p(r.id,12),r.title,r.type,r.status,r.priority,C(r.dueAt)])});}catch(t){o(t);}});}function te(i){let n=i.command("offerings").description("Kadaikodi offerings (products & services)");n.command("list").description("List offerings").option("--kind <k>","PRODUCT|SERVICE").option("--provider <id>","Filter by provider ID").option("--limit <n>","Page size",d,100).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(L,{kind:e.kind?e.kind.toUpperCase():void 0,providerId:e.provider,limit:e.limit,offset:e.offset});s(e,t.listOfferings,{headers:["ID","Name","Kind","Category","Price","Stock"],rows:t.listOfferings.map(r=>[p(r.id,12),r.name,r.kind,r.category,String(r.price),r.stock!=null?String(r.stock):"-"])});}catch(t){o(t);}}),n.command("get").description("Get an offering by id").argument("<id>","Offering ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a($,{id:e});if(!r.getOffering)throw new u(`Offering ${e} not found`);s(t,r.getOffering);}catch(r){o(r);}}),n.command("create").description("Create an offering").requiredOption("--provider <id>","Provider ID").requiredOption("--name <name>","Offering name").requiredOption("--slug <slug>","URL slug").requiredOption("--kind <k>","PRODUCT|SERVICE").requiredOption("--category <c>","Service category").requiredOption("--price <n>","Price",g).option("--description <s>","Description").option("--original-price <n>","Original price",g).option("--service-type <s>","Service type").option("--duration-minutes <n>","Duration (minutes)",d).option("--stock <n>","Stock",d).option("--tags <csv>","Comma-separated tags").option("--media <json>","Media JSON").option("--metadata <json>","Metadata JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={providerId:e.provider,name:e.name,slug:e.slug,kind:e.kind.toUpperCase(),category:e.category.toUpperCase(),price:e.price};e.description&&(t.description=e.description),e.originalPrice!==void 0&&(t.originalPrice=e.originalPrice),e.serviceType&&(t.serviceType=e.serviceType),e.durationMinutes!==void 0&&(t.durationMinutes=e.durationMinutes),e.stock!==void 0&&(t.stock=e.stock),e.tags&&(t.tags=e.tags.split(",").map(f=>f.trim())),e.media&&(t.media=l("media",e.media)),e.metadata&&(t.metadata=l("metadata",e.metadata));let r=await a(N,{input:t});m(`Offering created: ${r.createOffering.name}`),s(e,r.createOffering);}catch(t){o(t);}}),n.command("update").description("Update an offering").argument("<id>","Offering ID").option("--name <name>","Offering name").option("--description <s>","Description").option("--price <n>","Price",g).option("--original-price <n>","Original price",g).option("--service-type <s>","Service type").option("--duration-minutes <n>","Duration (minutes)",d).option("--stock <n>","Stock",d).option("--available <bool>","true|false",e=>e==="true").option("--tags <csv>","Comma-separated tags").option("--media <json>","Media JSON").option("--metadata <json>","Metadata JSON").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r={};if(t.name&&(r.name=t.name),t.description!==void 0&&(r.description=t.description),t.price!==void 0&&(r.price=t.price),t.originalPrice!==void 0&&(r.originalPrice=t.originalPrice),t.serviceType&&(r.serviceType=t.serviceType),t.durationMinutes!==void 0&&(r.durationMinutes=t.durationMinutes),t.stock!==void 0&&(r.stock=t.stock),t.available!==void 0&&(r.isAvailable=t.available),t.tags&&(r.tags=t.tags.split(",").map(w=>w.trim())),t.media&&(r.media=l("media",t.media)),t.metadata&&(r.metadata=l("metadata",t.metadata)),!Object.keys(r).length)throw new u("No updates specified");let f=await a(q,{id:e,input:r});m("Offering updated"),s(t,f.updateOffering);}catch(r){o(r);}});}function re(i){let n=i.command("orders").description("Kadaikodi orders");n.command("list").description("List orders").option("--customer <id>","Filter by customer ID").option("--provider <id>","Filter by provider ID").option("--status <s>","Filter by order status").option("--limit <n>","Page size",d,100).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(M,{customerId:e.customer,providerId:e.provider,status:e.status?e.status.toUpperCase():void 0,limit:e.limit,offset:e.offset});s(e,t.listOrders,{headers:["ID","Order #","Status","Payment","Fulfillment","Total"],rows:t.listOrders.map(r=>[p(r.id,12),r.orderNumber,r.status,r.paymentStatus,r.fulfillmentType,String(r.total)])});}catch(t){o(t);}}),n.command("get").description("Get an order by id").argument("<id>","Order ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(_,{id:e});if(!r.getOrder)throw new u(`Order ${e} not found`);s(t,r.getOrder);}catch(r){o(r);}}),n.command("place").description("Place an order").requiredOption("--customer <id>","Customer ID").requiredOption("--provider <id>","Provider ID").requiredOption("--fulfillment-type <t>","Fulfillment type (e.g. delivery, pickup)").requiredOption("--items <json>","Order items JSON array: [{ name, quantity, unitPrice, offeringId?, customizations? }]").option("--tax <n>","Tax",g).option("--delivery-fee <n>","Delivery fee",g).option("--discount <n>","Discount",g).option("--payment-method <m>","Payment method").option("--delivery-address <json>","Delivery address JSON").option("--notes <s>","Order notes").option("-f, --format <format>","Output format").action(async e=>{try{let t=l("items",e.items);if(!Array.isArray(t)||t.length===0)throw new u("--items must be a non-empty JSON array");let r={customerId:e.customer,providerId:e.provider,fulfillmentType:e.fulfillmentType,items:t};e.tax!==void 0&&(r.tax=e.tax),e.deliveryFee!==void 0&&(r.deliveryFee=e.deliveryFee),e.discount!==void 0&&(r.discount=e.discount),e.paymentMethod&&(r.paymentMethod=e.paymentMethod),e.deliveryAddress&&(r.deliveryAddress=l("delivery-address",e.deliveryAddress)),e.notes&&(r.notes=e.notes);let f=await a(F,{input:r});m(`Order placed: ${f.placeOrder.orderNumber}`),s(e,f.placeOrder);}catch(t){o(t);}}),n.command("set-status").description("Update an order status").argument("<id>","Order ID").requiredOption("--status <s>","PLACED|PENDING|CONFIRMED|PREPARING|READY|OUT_FOR_DELIVERY|DELIVERED|COMPLETED|CANCELLED").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(W,{id:e,status:t.status.toUpperCase()});m(`Order status set to ${r.updateOrderStatus.status}`),s(t,r.updateOrderStatus);}catch(r){o(r);}});}function ne(i){let n=i.command("reviews").description("Kadaikodi reviews");n.command("list").description("List reviews for a provider").requiredOption("--provider <id>","Provider ID").option("--limit <n>","Page size",d,100).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(U,{providerId:e.provider,limit:e.limit,offset:e.offset});s(e,t.listReviews,{headers:["ID","Customer","Rating","Review","Responded"],rows:t.listReviews.map(r=>[p(r.id,12),p(r.customerId,12),String(r.rating),p(r.review??"-",30),r.response?"yes":"no"])});}catch(t){o(t);}}),n.command("create").description("Create a review").requiredOption("--provider <id>","Provider ID").requiredOption("--customer <id>","Customer ID").requiredOption("--rating <n>","Rating (1-5)",d).option("--order <id>","Order ID").option("--review <text>","Review text").option("-f, --format <format>","Output format").action(async e=>{try{let t={providerId:e.provider,customerId:e.customer,rating:e.rating};e.order&&(t.orderId=e.order),e.review&&(t.review=e.review);let r=await a(K,{input:t});m("Review created"),s(e,r.createReview);}catch(t){o(t);}}),n.command("respond").description("Respond to a review").argument("<id>","Review ID").requiredOption("--response <text>","Response text").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(V,{id:e,response:t.response});m("Response saved"),s(t,r.respondToReview);}catch(r){o(r);}});}function ie(i){let n=i.command("investments").description("Kadaikodi investment opportunities & investments");n.command("list-opportunities").description("List investment opportunities").option("--risk-level <r>","LOW|MEDIUM|HIGH").option("--status <s>","DRAFT|ACTIVE|FUNDED|CLOSED").option("--limit <n>","Page size",d,100).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(j,{riskLevel:e.riskLevel?e.riskLevel.toUpperCase():void 0,status:e.status?e.status.toUpperCase():void 0,limit:e.limit,offset:e.offset});s(e,t.listInvestmentOpportunities,{headers:["ID","Title","Risk","Status","Target","Raised","Returns %"],rows:t.listInvestmentOpportunities.map(r=>[p(r.id,12),r.title,r.riskLevel,r.status,String(r.targetAmount),String(r.raisedAmount),String(r.expectedReturnsPct)])});}catch(t){o(t);}}),n.command("get-opportunity").description("Get an investment opportunity by id").argument("<id>","Opportunity ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(G,{id:e});if(!r.getInvestmentOpportunity)throw new u(`Investment opportunity ${e} not found`);s(t,r.getInvestmentOpportunity);}catch(r){o(r);}}),n.command("create-opportunity").description("Create an investment opportunity").requiredOption("--provider <id>","Provider ID").requiredOption("--title <t>","Title").requiredOption("--target-amount <n>","Target amount",g).requiredOption("--minimum-investment <n>","Minimum investment",g).requiredOption("--expected-returns-pct <n>","Expected returns %",g).requiredOption("--lock-in-months <n>","Lock-in months",d).option("--risk-level <r>","LOW|MEDIUM|HIGH","MEDIUM").option("--description <s>","Description").option("--expires-at <iso>","Expiry (ISO date)").option("--business-metrics <json>","Business metrics JSON").option("--terms <json>","Terms JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={providerId:e.provider,title:e.title,targetAmount:e.targetAmount,minimumInvestment:e.minimumInvestment,expectedReturnsPct:e.expectedReturnsPct,lockInMonths:e.lockInMonths,riskLevel:(e.riskLevel??"MEDIUM").toUpperCase()};e.description&&(t.description=e.description),e.expiresAt&&(t.expiresAt=e.expiresAt),e.businessMetrics&&(t.businessMetrics=l("business-metrics",e.businessMetrics)),e.terms&&(t.terms=l("terms",e.terms));let r=await a(J,{input:t});m(`Opportunity created: ${r.createInvestmentOpportunity.title}`),s(e,r.createInvestmentOpportunity);}catch(t){o(t);}}),n.command("list").description("List investments for an investor").requiredOption("--investor <id>","Investor ID").option("--limit <n>","Page size",d,100).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(H,{investorId:e.investor,limit:e.limit,offset:e.offset});s(e,t.listInvestments,{headers:["ID","Opportunity","Amount","Current","Returns","Status"],rows:t.listInvestments.map(r=>[p(r.id,12),p(r.opportunityId,12),String(r.amount),String(r.currentValue),String(r.realizedReturns),r.status])});}catch(t){o(t);}}),n.command("invest").description("Invest in an opportunity").requiredOption("--investor <id>","Investor ID").requiredOption("--opportunity <id>","Opportunity ID").requiredOption("--amount <n>","Amount",g).option("-f, --format <format>","Output format").action(async e=>{try{let t={investorId:e.investor,opportunityId:e.opportunity,amount:e.amount},r=await a(z,{input:t});m(`Invested ${r.invest.amount} in ${r.invest.opportunityId}`),s(e,r.invest);}catch(t){o(t);}});}function oe(i){let n=i.command("analytics").description("Kadaikodi analytics & dashboard");n.command("admin").description("Admin analytics (category distribution, growth, revenue, top providers)").option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(B);s(e,t.kadaikodiAdminAnalytics);}catch(t){o(t);}}),n.command("dashboard").description("Dashboard stats (orders, revenue, providers, customers, rating)").option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(Y);s(e,t.kadaikodiDashboardStats);}catch(t){o(t);}}),i.command("health").description("Kadaikodi service health check (public)").option("-f, --format <format>","Output format").action(async e=>{try{let t=await h(Q);m(t.kadaikodiHealth),s(e,{health:t.kadaikodiHealth});}catch(t){o(t);}});}var ye={id:"kadaikodi",version:"1.0.0",displayName:"Kadaikodi",dependsOn:["auth","workspaces"],register(i,n){E(n);let e=i.command("kadaikodi").description("Kadaikodi local-services marketplace");X(e),Z(e),ee(e),te(e),re(e),ne(e),ie(e),oe(e);}},sr=ye;module.exports=sr;
|
|
192
|
+
`;function l(i,n){try{return JSON.parse(n)}catch{throw new c(`--${i} must be valid JSON`)}}function d(i){let n=Number.parseInt(i,10);if(Number.isNaN(n))throw new c(`Expected an integer but got "${i}"`);return n}function g(i){let n=Number.parseFloat(i);if(Number.isNaN(n))throw new c(`Expected a number but got "${i}"`);return n}function X(i){let n=i.command("providers").description("Kadaikodi service providers");n.command("list").description("List service providers").option("--category <c>","Filter by service category").option("--status <s>","Filter by provider status").option("--query <q>","Free-text search").option("--open-only","Only providers currently open").option("--limit <n>","Page size",d,50).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async e=>{try{let t={};e.category&&(t.category=e.category.toUpperCase()),e.status&&(t.status=e.status.toUpperCase()),e.query&&(t.query=e.query),e.openOnly&&(t.openOnly=!0);let r=await a(R,{filter:Object.keys(t).length?t:void 0,pagination:{limit:e.limit,offset:e.offset}});s(e,r.kadaikodiListServiceProviders,{headers:["ID","Name","Category","Status","Rating"],rows:r.kadaikodiListServiceProviders.map(u=>[m(u.id,12),u.name,u.category,u.status,`${u.rating??0} (${u.totalRatings??0})`])});}catch(t){o(t);}}),n.command("get").description("Get a service provider by id").argument("<id>","Provider ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(x,{id:e});if(!r.kadaikodiServiceProvider)throw new c(`Provider ${e} not found`);s(t,r.kadaikodiServiceProvider);}catch(r){o(r);}}),n.command("create").description("Create a service provider").requiredOption("--owner <id>","Owner user ID").requiredOption("--name <name>","Provider name").requiredOption("--slug <slug>","URL slug").requiredOption("--category <c>","Service category").requiredOption("--location <json>","Location JSON (address/latitude/longitude)").option("--description <s>","Description").option("--offering-type <t>","product|service|both","both").option("--service-types <csv>","Comma-separated service types").option("--business-hours <json>","Business hours JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={ownerId:e.owner,name:e.name,slug:e.slug,category:e.category.toUpperCase(),location:l("location",e.location),offeringType:e.offeringType??"both"};e.description&&(t.description=e.description),e.serviceTypes&&(t.serviceTypes=e.serviceTypes.split(",").map(u=>u.trim())),e.businessHours&&(t.businessHours=l("business-hours",e.businessHours));let r=await a(S,{input:t});f(`Provider created: ${r.kadaikodiCreateServiceProvider.name}`),s(e,r.kadaikodiCreateServiceProvider);}catch(t){o(t);}}),n.command("update").description("Update a service provider").argument("<id>","Provider ID").option("--name <name>","Provider name").option("--description <s>","Description").option("--status <s>","Provider status").option("--location <json>","Location JSON").option("--service-types <csv>","Comma-separated service types").option("--business-hours <json>","Business hours JSON").option("--analytics-snapshot <json>","Analytics snapshot JSON").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r={};if(t.name&&(r.name=t.name),t.description!==void 0&&(r.description=t.description),t.status&&(r.status=t.status.toUpperCase()),t.location&&(r.location=l("location",t.location)),t.serviceTypes&&(r.serviceTypes=t.serviceTypes.split(",").map(w=>w.trim())),t.businessHours&&(r.businessHours=l("business-hours",t.businessHours)),t.analyticsSnapshot&&(r.analyticsSnapshot=l("analytics-snapshot",t.analyticsSnapshot)),!Object.keys(r).length)throw new c("No updates specified");let u=await a(A,{id:e,input:r});f("Provider updated"),s(t,u.kadaikodiUpdateServiceProvider);}catch(r){o(r);}});}function Z(i){i.command("workers").description("Kadaikodi provider workers").command("list").description("List workers for a provider").requiredOption("--provider <id>","Provider ID").option("--limit <n>","Page size",d,50).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(P,{providerId:e.provider,pagination:{limit:e.limit,offset:e.offset}});s(e,t.kadaikodiListProviderWorkers,{headers:["ID","Name","Role","Status","Worker"],rows:t.kadaikodiListProviderWorkers.map(r=>[m(r.id,12),r.name,r.role,r.status,m(r.workerId,12)])});}catch(t){o(t);}});}function ee(i){i.command("tasks").description("Kadaikodi worker tasks").command("list").description("List the worker tasks assigned to the signed-in worker").option("--status <s>","Filter by status (ASSIGNED, IN_PROGRESS, BLOCKED, COMPLETED, CANCELLED)").option("--limit <n>","Page size",d,50).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(D,{status:e.status?.toUpperCase(),pagination:{limit:e.limit,offset:e.offset}});s(e,t.kadaikodiWorkerTasks,{headers:["ID","Title","Type","Status","Priority","Due"],rows:t.kadaikodiWorkerTasks.map(r=>[m(r.id,12),r.title,r.type,r.status,r.priority,h(r.dueAt)])});}catch(t){o(t);}});}function te(i){let n=i.command("offerings").description("Kadaikodi offerings (products & services)");n.command("list").description("List offerings").option("--kind <k>","PRODUCT|SERVICE").option("--provider <id>","Filter by provider ID").option("--limit <n>","Page size",d,100).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await a($,{kind:e.kind?e.kind.toUpperCase():void 0,providerId:e.provider,pagination:{limit:e.limit,offset:e.offset}});s(e,t.kadaikodiListOfferings,{headers:["ID","Name","Kind","Category","Price","Stock"],rows:t.kadaikodiListOfferings.map(r=>[m(r.id,12),r.name,r.kind,r.category,String(r.price),r.stock!=null?String(r.stock):"-"])});}catch(t){o(t);}}),n.command("get").description("Get an offering by id").argument("<id>","Offering ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(L,{id:e});if(!r.kadaikodiOffering)throw new c(`Offering ${e} not found`);s(t,r.kadaikodiOffering);}catch(r){o(r);}}),n.command("create").description("Create an offering").requiredOption("--provider <id>","Provider ID").requiredOption("--name <name>","Offering name").requiredOption("--slug <slug>","URL slug").requiredOption("--kind <k>","PRODUCT|SERVICE").requiredOption("--category <c>","Service category").requiredOption("--price <n>","Price",g).option("--description <s>","Description").option("--original-price <n>","Original price",g).option("--service-type <s>","Service type").option("--duration-minutes <n>","Duration (minutes)",d).option("--stock <n>","Stock",d).option("--tags <csv>","Comma-separated tags").option("--media <json>","Media JSON").option("--metadata <json>","Metadata JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={providerId:e.provider,name:e.name,slug:e.slug,kind:e.kind.toUpperCase(),category:e.category.toUpperCase(),price:e.price};e.description&&(t.description=e.description),e.originalPrice!==void 0&&(t.originalPrice=e.originalPrice),e.serviceType&&(t.serviceType=e.serviceType),e.durationMinutes!==void 0&&(t.durationMinutes=e.durationMinutes),e.stock!==void 0&&(t.stock=e.stock),e.tags&&(t.tags=e.tags.split(",").map(u=>u.trim())),e.media&&(t.media=l("media",e.media)),e.metadata&&(t.metadata=l("metadata",e.metadata));let r=await a(N,{input:t});f(`Offering created: ${r.kadaikodiCreateOffering.name}`),s(e,r.kadaikodiCreateOffering);}catch(t){o(t);}}),n.command("update").description("Update an offering").argument("<id>","Offering ID").option("--name <name>","Offering name").option("--description <s>","Description").option("--price <n>","Price",g).option("--original-price <n>","Original price",g).option("--service-type <s>","Service type").option("--duration-minutes <n>","Duration (minutes)",d).option("--stock <n>","Stock",d).option("--available <bool>","true|false",e=>e==="true").option("--tags <csv>","Comma-separated tags").option("--media <json>","Media JSON").option("--metadata <json>","Metadata JSON").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r={};if(t.name&&(r.name=t.name),t.description!==void 0&&(r.description=t.description),t.price!==void 0&&(r.price=t.price),t.originalPrice!==void 0&&(r.originalPrice=t.originalPrice),t.serviceType&&(r.serviceType=t.serviceType),t.durationMinutes!==void 0&&(r.durationMinutes=t.durationMinutes),t.stock!==void 0&&(r.stock=t.stock),t.available!==void 0&&(r.isAvailable=t.available),t.tags&&(r.tags=t.tags.split(",").map(w=>w.trim())),t.media&&(r.media=l("media",t.media)),t.metadata&&(r.metadata=l("metadata",t.metadata)),!Object.keys(r).length)throw new c("No updates specified");let u=await a(q,{id:e,input:r});f("Offering updated"),s(t,u.kadaikodiUpdateOffering);}catch(r){o(r);}});}function re(i){let n=i.command("orders").description("Kadaikodi orders");n.command("list").description("List orders").option("--customer <id>","Filter by customer ID").option("--provider <id>","Filter by provider ID").option("--status <s>","Filter by order status").option("--limit <n>","Page size",d,100).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(M,{customerId:e.customer,providerId:e.provider,status:e.status?e.status.toUpperCase():void 0,pagination:{limit:e.limit,offset:e.offset}});s(e,t.kadaikodiListOrders,{headers:["ID","Order #","Status","Payment","Fulfillment","Total"],rows:t.kadaikodiListOrders.map(r=>[m(r.id,12),r.orderNumber,r.status,r.paymentStatus,r.fulfillmentType,String(r.total)])});}catch(t){o(t);}}),n.command("get").description("Get an order by id").argument("<id>","Order ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(_,{id:e});if(!r.kadaikodiOrder)throw new c(`Order ${e} not found`);s(t,r.kadaikodiOrder);}catch(r){o(r);}}),n.command("place").description("Place an order").requiredOption("--customer <id>","Customer ID").requiredOption("--provider <id>","Provider ID").requiredOption("--fulfillment-type <t>","Fulfillment type (e.g. delivery, pickup)").requiredOption("--items <json>","Order items JSON array: [{ name, quantity, unitPrice, offeringId?, customizations? }]").option("--tax <n>","Tax",g).option("--delivery-fee <n>","Delivery fee",g).option("--discount <n>","Discount",g).option("--payment-method <m>","Payment method").option("--delivery-address <json>","Delivery address JSON").option("--notes <s>","Order notes").option("-f, --format <format>","Output format").action(async e=>{try{let t=l("items",e.items);if(!Array.isArray(t)||t.length===0)throw new c("--items must be a non-empty JSON array");let r={customerId:e.customer,providerId:e.provider,fulfillmentType:e.fulfillmentType,items:t};e.tax!==void 0&&(r.tax=e.tax),e.deliveryFee!==void 0&&(r.deliveryFee=e.deliveryFee),e.discount!==void 0&&(r.discount=e.discount),e.paymentMethod&&(r.paymentMethod=e.paymentMethod),e.deliveryAddress&&(r.deliveryAddress=l("delivery-address",e.deliveryAddress)),e.notes&&(r.notes=e.notes);let u=await a(U,{input:r});f(`Order placed: ${u.kadaikodiPlaceOrder.orderNumber}`),s(e,u.kadaikodiPlaceOrder);}catch(t){o(t);}}),n.command("set-status").description("Update an order status").argument("<id>","Order ID").requiredOption("--status <s>","PLACED|PENDING|CONFIRMED|PREPARING|READY|OUT_FOR_DELIVERY|DELIVERED|COMPLETED|CANCELLED").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(F,{id:e,status:t.status.toUpperCase()});f(`Order status set to ${r.kadaikodiUpdateOrderStatus.status}`),s(t,r.kadaikodiUpdateOrderStatus);}catch(r){o(r);}});}function ne(i){let n=i.command("reviews").description("Kadaikodi reviews");n.command("list").description("List reviews for a provider").requiredOption("--provider <id>","Provider ID").option("--limit <n>","Page size",d,100).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(W,{providerId:e.provider,pagination:{limit:e.limit,offset:e.offset}});s(e,t.kadaikodiListReviews,{headers:["ID","Customer","Rating","Review","Responded"],rows:t.kadaikodiListReviews.map(r=>[m(r.id,12),m(r.customerId,12),String(r.rating),m(r.review??"-",30),r.response?"yes":"no"])});}catch(t){o(t);}}),n.command("create").description("Create a review").requiredOption("--provider <id>","Provider ID").requiredOption("--customer <id>","Customer ID").requiredOption("--rating <n>","Rating (1-5)",d).option("--order <id>","Order ID").option("--review <text>","Review text").option("-f, --format <format>","Output format").action(async e=>{try{let t={providerId:e.provider,customerId:e.customer,rating:e.rating};e.order&&(t.orderId=e.order),e.review&&(t.review=e.review);let r=await a(K,{input:t});f("Review created"),s(e,r.kadaikodiCreateReview);}catch(t){o(t);}}),n.command("respond").description("Respond to a review").argument("<id>","Review ID").requiredOption("--response <text>","Response text").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(V,{id:e,response:t.response});f("Response saved"),s(t,r.kadaikodiRespondToReview);}catch(r){o(r);}});}function ie(i){let n=i.command("investments").description("Kadaikodi investment opportunities & investments");n.command("list-opportunities").description("List investment opportunities").option("--risk-level <r>","LOW|MEDIUM|HIGH").option("--status <s>","DRAFT|ACTIVE|FUNDED|CLOSED").option("--limit <n>","Page size",d,100).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(j,{riskLevel:e.riskLevel?e.riskLevel.toUpperCase():void 0,status:e.status?e.status.toUpperCase():void 0,pagination:{limit:e.limit,offset:e.offset}});s(e,t.kadaikodiListInvestmentOpportunities,{headers:["ID","Title","Risk","Status","Target","Raised","Returns %"],rows:t.kadaikodiListInvestmentOpportunities.map(r=>[m(r.id,12),r.title,r.riskLevel,r.status,String(r.targetAmount),String(r.raisedAmount),String(r.expectedReturnsPct)])});}catch(t){o(t);}}),n.command("get-opportunity").description("Get an investment opportunity by id").argument("<id>","Opportunity ID").option("-f, --format <format>","Output format").action(async(e,t)=>{try{let r=await a(G,{id:e});if(!r.kadaikodiInvestmentOpportunity)throw new c(`Investment opportunity ${e} not found`);s(t,r.kadaikodiInvestmentOpportunity);}catch(r){o(r);}}),n.command("create-opportunity").description("Create an investment opportunity").requiredOption("--provider <id>","Provider ID").requiredOption("--title <t>","Title").requiredOption("--target-amount <n>","Target amount",g).requiredOption("--minimum-investment <n>","Minimum investment",g).requiredOption("--expected-returns-pct <n>","Expected returns %",g).requiredOption("--lock-in-months <n>","Lock-in months",d).option("--risk-level <r>","LOW|MEDIUM|HIGH","MEDIUM").option("--description <s>","Description").option("--expires-at <iso>","Expiry (ISO date)").option("--business-metrics <json>","Business metrics JSON").option("--terms <json>","Terms JSON").option("-f, --format <format>","Output format").action(async e=>{try{let t={providerId:e.provider,title:e.title,targetAmount:e.targetAmount,minimumInvestment:e.minimumInvestment,expectedReturnsPct:e.expectedReturnsPct,lockInMonths:e.lockInMonths,riskLevel:(e.riskLevel??"MEDIUM").toUpperCase()};e.description&&(t.description=e.description),e.expiresAt&&(t.expiresAt=e.expiresAt),e.businessMetrics&&(t.businessMetrics=l("business-metrics",e.businessMetrics)),e.terms&&(t.terms=l("terms",e.terms));let r=await a(J,{input:t});f(`Opportunity created: ${r.kadaikodiCreateInvestmentOpportunity.title}`),s(e,r.kadaikodiCreateInvestmentOpportunity);}catch(t){o(t);}}),n.command("list").description("List investments for an investor").requiredOption("--investor <id>","Investor ID").option("--limit <n>","Page size",d,100).option("--offset <n>","Offset",d,0).option("-f, --format <format>","Output format").action(async e=>{try{let r=(await a(H,{pagination:{limit:e.limit,offset:e.offset}})).kadaikodiListInvestments.filter(u=>u.investorId===e.investor);s(e,r,{headers:["ID","Opportunity","Amount","Current","Returns","Status"],rows:r.map(u=>[m(u.id,12),m(u.opportunityId,12),String(u.amount),String(u.currentValue),String(u.realizedReturns),u.status])});}catch(t){o(t);}}),n.command("invest").description("Invest in an opportunity").requiredOption("--investor <id>","Investor ID").requiredOption("--opportunity <id>","Opportunity ID").requiredOption("--amount <n>","Amount",g).option("-f, --format <format>","Output format").action(async e=>{try{let t={investorId:e.investor,opportunityId:e.opportunity,amount:e.amount},r=await a(z,{input:t});f(`Invested ${r.kadaikodiInvest.amount} in ${r.kadaikodiInvest.opportunityId}`),s(e,r.kadaikodiInvest);}catch(t){o(t);}});}function oe(i){let n=i.command("analytics").description("Kadaikodi analytics & dashboard");n.command("admin").description("Admin analytics (category distribution, growth, revenue, top providers)").option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(B);s(e,t.kadaikodiAdminAnalytics);}catch(t){o(t);}}),n.command("dashboard").description("Dashboard stats (orders, revenue, providers, customers, rating)").option("-f, --format <format>","Output format").action(async e=>{try{let t=await a(Y);s(e,t.kadaikodiDashboardStats);}catch(t){o(t);}}),i.command("health").description("Kadaikodi service health check (public)").option("-f, --format <format>","Output format").action(async e=>{try{let t=await C(Q);f(t.kadaikodiHealth),s(e,{health:t.kadaikodiHealth});}catch(t){o(t);}});}var ye={id:"kadaikodi",version:"1.0.0",displayName:"Kadaikodi",dependsOn:["auth","workspaces"],register(i,n){b(n);let e=i.command("kadaikodi").description("Kadaikodi local-services marketplace");X(e),Z(e),ee(e),te(e),re(e),ne(e),ie(e),oe(e);}},sr=ye;module.exports=sr;
|