@burdenoff/cli-sdk 2026.1101.1 → 2026.1102.2
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/chunk-O6UCQ5IT.js +1 -0
- package/dist/{chunk-REBBLQFS.js → chunk-ZGT7IIOP.js} +494 -522
- package/dist/modules/adaptercloud/index.cjs +4 -4
- package/dist/modules/adaptercloud/index.js +2 -2
- package/dist/modules/artistrybase/index.js +2 -2
- package/dist/modules/assethandler/index.cjs +2 -2
- package/dist/modules/assethandler/index.js +2 -2
- package/dist/modules/atheletebridge/index.cjs +8 -8
- package/dist/modules/atheletebridge/index.js +2 -2
- package/dist/modules/auth/index.cjs +37 -37
- package/dist/modules/auth/index.js +33 -29
- package/dist/modules/billing/index.cjs +18 -18
- package/dist/modules/billing/index.js +22 -22
- package/dist/modules/brainyrich/index.cjs +44 -28
- package/dist/modules/brainyrich/index.js +47 -31
- package/dist/modules/buildmyiq/index.js +2 -2
- package/dist/modules/channels/index.cjs +3 -3
- package/dist/modules/channels/index.js +2 -2
- package/dist/modules/collabkin/index.cjs +4 -4
- package/dist/modules/collabkin/index.js +2 -2
- package/dist/modules/comradecircle/index.cjs +6 -6
- package/dist/modules/comradecircle/index.js +2 -2
- package/dist/modules/conversations/index.cjs +7 -7
- package/dist/modules/conversations/index.js +2 -2
- package/dist/modules/coolandlovely/index.cjs +2 -2
- package/dist/modules/coolandlovely/index.js +2 -2
- package/dist/modules/cosmicintersection/index.cjs +6 -6
- package/dist/modules/cosmicintersection/index.js +2 -2
- package/dist/modules/crewfoundry/index.js +2 -2
- package/dist/modules/devportal/index.cjs +40 -34
- package/dist/modules/devportal/index.js +49 -43
- package/dist/modules/ecoimpacthub/index.cjs +5 -5
- package/dist/modules/ecoimpacthub/index.js +2 -2
- package/dist/modules/eventfullymanaged/index.cjs +12 -12
- package/dist/modules/eventfullymanaged/index.js +2 -2
- package/dist/modules/export/index.cjs +4 -4
- package/dist/modules/export/index.js +2 -2
- package/dist/modules/files/index.cjs +3 -3
- package/dist/modules/files/index.js +4 -4
- package/dist/modules/fluidgrids/index.cjs +16 -16
- package/dist/modules/fluidgrids/index.js +3 -3
- package/dist/modules/ggnomad/index.cjs +4 -4
- package/dist/modules/ggnomad/index.js +2 -2
- package/dist/modules/govcitizenhub/index.cjs +4 -4
- package/dist/modules/govcitizenhub/index.js +2 -2
- package/dist/modules/groups/index.cjs +4 -4
- package/dist/modules/groups/index.js +2 -2
- package/dist/modules/headshotmarketing/index.js +2 -2
- package/dist/modules/hookmovies/index.cjs +6 -6
- package/dist/modules/hookmovies/index.js +2 -2
- package/dist/modules/housingvista/index.cjs +3 -3
- package/dist/modules/housingvista/index.js +2 -2
- package/dist/modules/integrations/index.cjs +5 -5
- package/dist/modules/integrations/index.js +2 -2
- package/dist/modules/intelwatchtower/index.cjs +5 -5
- package/dist/modules/intelwatchtower/index.js +2 -2
- package/dist/modules/kadaikodi/index.cjs +2 -2
- package/dist/modules/kadaikodi/index.js +2 -2
- package/dist/modules/labsofscience/index.cjs +3 -3
- package/dist/modules/labsofscience/index.js +2 -2
- package/dist/modules/manufacturedops/index.cjs +2 -2
- package/dist/modules/manufacturedops/index.js +2 -2
- package/dist/modules/movethewheels/index.js +2 -2
- package/dist/modules/notifications/index.cjs +2 -2
- package/dist/modules/notifications/index.js +2 -2
- package/dist/modules/organizations/index.js +2 -2
- package/dist/modules/planmagnet/index.js +2 -2
- package/dist/modules/products/index.cjs +4 -4
- package/dist/modules/products/index.js +2 -2
- package/dist/modules/proserviceworld/index.cjs +2 -2
- package/dist/modules/proserviceworld/index.js +2 -2
- package/dist/modules/rbac/index.js +2 -2
- package/dist/modules/sandbox/index.cjs +32 -51
- package/dist/modules/sandbox/index.js +1 -1
- package/dist/modules/scheduler/index.cjs +2 -2
- package/dist/modules/scheduler/index.js +2 -2
- package/dist/modules/security/index.cjs +3 -3
- package/dist/modules/security/index.js +2 -2
- package/dist/modules/semanticfed/index.cjs +3 -3
- package/dist/modules/semanticfed/index.js +2 -2
- package/dist/modules/store/index.cjs +46 -40
- package/dist/modules/store/index.js +45 -39
- package/dist/modules/subscriberbot/index.cjs +1 -1
- package/dist/modules/subscriberbot/index.js +2 -2
- package/dist/modules/support/index.cjs +2 -2
- package/dist/modules/support/index.js +2 -2
- package/dist/modules/tags/index.js +2 -2
- package/dist/modules/technospam/index.cjs +2 -2
- package/dist/modules/technospam/index.js +2 -2
- package/dist/modules/theculturepost/index.js +2 -2
- package/dist/modules/theglobalfuel/index.cjs +2 -2
- package/dist/modules/theglobalfuel/index.js +2 -2
- package/dist/modules/timecampus/index.js +2 -2
- package/dist/modules/tours/index.cjs +2 -2
- package/dist/modules/tours/index.js +2 -2
- package/dist/modules/vibecontrols/index.cjs +573 -577
- package/dist/modules/vibecontrols/index.js +5 -4
- package/dist/modules/workspaces/index.cjs +4 -4
- package/dist/modules/workspaces/index.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-W4JZR7RJ.js +0 -1
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
total hasMore
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
|
-
`,
|
|
8
|
+
`,b=`
|
|
9
9
|
query GetProvider($id: ID!) {
|
|
10
10
|
getProvider(id: $id) {
|
|
11
11
|
id key name authType category connectionCount
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
`,
|
|
14
|
+
`,A=`
|
|
15
15
|
query GetConnections($filter: ConnectionFilterInput, $pagination: IntegrationsPaginationInput) {
|
|
16
16
|
getConnections(filter: $filter, pagination: $pagination) {
|
|
17
17
|
items { id name providerId status grantedScopes }
|
|
@@ -34,14 +34,14 @@
|
|
|
34
34
|
mutation DeleteConnection($id: ID!, $deleteVaultSecret: Boolean) {
|
|
35
35
|
deleteConnection(id: $id, deleteVaultSecret: $deleteVaultSecret)
|
|
36
36
|
}
|
|
37
|
-
|
|
37
|
+
`,S=`
|
|
38
38
|
query GetIntegrationLogs($filter: LogFilterInput, $pagination: IntegrationsPaginationInput) {
|
|
39
39
|
getIntegrationLogs(filter: $filter, pagination: $pagination) {
|
|
40
40
|
items { id action level message createdAt }
|
|
41
41
|
total hasMore
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
|
-
|
|
44
|
+
`,$=`
|
|
45
45
|
mutation UpdateConnection($id: ID!, $input: UpdateConnectionInput!) {
|
|
46
46
|
updateConnection(id: $id, input: $input) { id name status }
|
|
47
47
|
}
|
|
@@ -125,4 +125,4 @@
|
|
|
125
125
|
query GetConnectionTags($input: GetConnectionTagsInput!) {
|
|
126
126
|
getConnectionTags(input: $input) { id entityId tagId source assignedAt }
|
|
127
127
|
}
|
|
128
|
-
`;function X(o){let a=o.command("integrations").description("Integration providers, connections, and logs"),u=a.command("providers").description("Available providers");u.command("list").description("List integration providers").option("--category <c>").option("--enabled").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async e=>{try{let t={};e.category&&(t.category=e.category.toUpperCase()),e.enabled!==void 0&&(t.isEnabled=e.enabled);let n=await r(O,{filter:Object.keys(t).length?t:void 0,pagination:{limit:e.limit,offset:0}});s(e,n.getProviders.items,{headers:["ID","Key","Name","Category","Auth","Enabled"],rows:n.getProviders.items.map(c=>[y(c.id,12),c.key,c.name,c.category??"-",c.authType??"-",String(!!c.isEnabled)])});}catch(t){i(t);}}),u.command("get").description("Get a provider").argument("<id>").option("-f, --format <format>").action(async(e,t)=>{try{let n=await r(
|
|
128
|
+
`;function X(o){let a=o.command("integrations").description("Integration providers, connections, and logs"),u=a.command("providers").description("Available providers");u.command("list").description("List integration providers").option("--category <c>").option("--enabled").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async e=>{try{let t={};e.category&&(t.category=e.category.toUpperCase()),e.enabled!==void 0&&(t.isEnabled=e.enabled);let n=await r(O,{filter:Object.keys(t).length?t:void 0,pagination:{limit:e.limit,offset:0}});s(e,n.getProviders.items,{headers:["ID","Key","Name","Category","Auth","Enabled"],rows:n.getProviders.items.map(c=>[y(c.id,12),c.key,c.name,c.category??"-",c.authType??"-",String(!!c.isEnabled)])});}catch(t){i(t);}}),u.command("get").description("Get a provider").argument("<id>").option("-f, --format <format>").action(async(e,t)=>{try{let n=await r(b,{id:e});if(!n.getProvider)throw new g(`Provider ${e} not found`);s(t,n.getProvider);}catch(n){i(n);}});let l=a.command("connections").description("Provider connections (OAuth + credential)");l.command("list").description("List connections").option("--provider <id>").option("--status <s>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async e=>{try{let t={};e.provider&&(t.providerId=e.provider),e.status&&(t.status=e.status.toUpperCase());let n=await r(A,{filter:Object.keys(t).length?t:void 0,pagination:{limit:e.limit,offset:0}});s(e,n.getConnections.items,{headers:["ID","Name","Provider","Status"],rows:n.getConnections.items.map(c=>[y(c.id,12),c.name,y(c.providerId,12),x(c.status)])});}catch(t){i(t);}}),l.command("get").description("Get a connection").argument("<id>").option("-f, --format <format>").action(async(e,t)=>{try{let n=await r(N,{id:e});if(!n.getConnection)throw new g(`Connection ${e} not found`);s(t,n.getConnection);}catch(n){i(n);}}),l.command("add").description("Create a connection (provider id required; credentials stored in vault)").requiredOption("--name <name>").requiredOption("--provider <id>").option("--scopes <s>","Comma-separated scopes").option("-f, --format <format>").action(async e=>{try{let t={name:e.name,providerId:e.provider,grantedScopes:e.scopes?e.scopes.split(","):void 0},n=await r(R,{input:t});d("Connection created"),s(e,n.createConnection);}catch(t){i(t);}}),l.command("delete").description("Delete a connection").argument("<id>").option("--keep-secret","Keep vault secret",false).action(async(e,t)=>{try{await r(P,{id:e,deleteVaultSecret:!t.keepSecret}),d("Connection deleted");}catch(n){i(n);}}),l.command("update").description("Update a connection (name / description / config JSON)").argument("<id>").option("--name <name>").option("--description <desc>").option("--config <json>","Config JSON string").option("-f, --format <format>").action(async(e,t)=>{try{let n={};if(t.name!==void 0&&(n.name=t.name),t.description!==void 0&&(n.description=t.description),t.config!==void 0&&(n.config=JSON.parse(t.config)),Object.keys(n).length===0)throw new g("Provide at least one of --name, --description, --config");let c=await r($,{id:e,input:n});d("Connection updated"),s(t,c.updateConnection);}catch(n){i(n);}}),l.command("revoke").description("Revoke a connection (soft delete; tokens invalidated)").argument("<connectionId>").option("-f, --format <format>").action(async(e,t)=>{try{let n=await r(_,{connectionId:e});d("Connection revoked"),s(t,n.revokeConnection);}catch(n){i(n);}}),l.command("test").description("Test a connection (health/auth probe)").argument("<connectionId>").option("-f, --format <format>").action(async(e,t)=>{try{let n=await r(D,{connectionId:e});s(t,n.testConnection);}catch(n){i(n);}}),l.command("link").description("Link a connection to a channel for DM/notification routing").requiredOption("--channel <channelId>").requiredOption("--connection <id>").requiredOption("--organization <id>").option("-f, --format <format>").action(async e=>{try{let t=await r(q,{channelId:e.channel,connectionId:e.connection,organizationId:e.organization});d("Linked"),s(e,t.linkIntegrationToChannel);}catch(t){i(t);}}),l.command("refresh-token").description("Force a connection token refresh (OAuth refresh_grant)").argument("<connectionId>").option("-f, --format <format>").action(async(e,t)=>{try{let n=await r(L,{connectionId:e});d("Token refreshed"),s(t,n.refreshConnectionToken);}catch(n){i(n);}});let h=a.command("auth").description("Per-connection auth flows");h.command("api-key").description("Authenticate a connection with an API key").requiredOption("--connection <id>").requiredOption("--api-key <key>").option("-f, --format <format>").action(async e=>{try{let t=await r(G,{input:{connectionId:e.connection,apiKey:e.apiKey}});d("Authenticated"),s(e,t.authenticateWithApiKey);}catch(t){i(t);}}),h.command("basic").description("Authenticate a connection with Basic Auth").requiredOption("--connection <id>").requiredOption("--username <u>").requiredOption("--password <p>").option("-f, --format <format>").action(async e=>{try{let t=await r(U,{input:{connectionId:e.connection,username:e.username,password:e.password}});d("Authenticated"),s(e,t.authenticateWithBasicAuth);}catch(t){i(t);}}),h.command("bearer").description("Authenticate a connection with a Bearer token").requiredOption("--connection <id>").requiredOption("--token <t>").option("-f, --format <format>").action(async e=>{try{let t=await r(W,{input:{connectionId:e.connection,token:e.token}});d("Authenticated"),s(e,t.authenticateWithBearerToken);}catch(t){i(t);}}),h.command("oauth-start").description("Initiate an OAuth flow; prints redirect URL + state").requiredOption("--connection <id>").requiredOption("--redirect-uri <uri>").option("--scopes <s>","Comma-separated scopes").option("-f, --format <format>").action(async e=>{try{let t={connectionId:e.connection,redirectUri:e.redirectUri};e.scopes&&(t.scopes=e.scopes.split(","));let n=await r(B,{input:t});s(e,n.initiateOAuth);}catch(t){i(t);}}),h.command("oauth-complete").description("Complete an OAuth flow with the authorization code + state").requiredOption("--connection <id>").requiredOption("--code <c>").requiredOption("--redirect-uri <uri>").requiredOption("--state <s>").option("-f, --format <format>").action(async e=>{try{let t=await r(F,{input:{connectionId:e.connection,code:e.code,redirectUri:e.redirectUri,state:e.state}});d("OAuth complete"),s(e,t.completeOAuth);}catch(t){i(t);}});let I=l.command("tags").description("Connection tag assignments");I.command("add").description("Tag a connection").requiredOption("--entity <id>").requiredOption("--tag <tagId>").option("--source <s>").option("-f, --format <format>").action(async e=>{try{let t={entityId:e.entity,tagId:e.tag};e.source&&(t.source=e.source);let n=await r(H,{input:t});d("Tagged"),s(e,n.tagConnection);}catch(t){i(t);}}),I.command("remove").description("Remove a tag from a connection").requiredOption("--entity <id>").requiredOption("--tag <tagId>").action(async e=>{try{await r(Y,{input:{entityId:e.entity,tagId:e.tag}}),d("Tag removed");}catch(t){i(t);}}),I.command("replace").description("Replace all tags on a connection").requiredOption("--entity <id>").requiredOption("--tags <ids>","Comma-separated tag IDs").option("-f, --format <format>").action(async e=>{try{let t=await r(J,{input:{entityId:e.entity,tagIds:e.tags.split(",")}});d("Tags replaced"),s(e,t.replaceConnectionTags);}catch(t){i(t);}}),I.command("list").description("List tags on a connection").requiredOption("--entity <id>").option("-f, --format <format>").action(async e=>{try{let t=await r(Q,{input:{entityId:e.entity}});s(e,t.getConnectionTags);}catch(t){i(t);}}),u.command("get-by-key").description("Get a provider by key (e.g. github, slack)").argument("<key>").option("-f, --format <format>").action(async(e,t)=>{try{let n=await r(j,{key:e});if(!n.getProviderByKey)throw new g(`Provider ${e} not found`);s(t,n.getProviderByKey);}catch(n){i(n);}}),u.command("catalog").description("Browseable provider catalog").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async e=>{try{let t=await r(M,{pagination:{limit:e.limit,offset:0}});s(e,t.getProviderCatalog.items,{headers:["ID","Key","Name","Category","Auth","Enabled"],rows:t.getProviderCatalog.items.map(n=>[y(n.id,12),n.key,n.name,n.category??"-",n.authType??"-",String(!!n.isEnabled)])});}catch(t){i(t);}}),u.command("connections").description("Connections for a given provider").argument("<providerId>").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async(e,t)=>{try{let n=await r(V,{providerId:e,pagination:{limit:t.limit,offset:0}});s(t,n.getConnectionsByProvider.items);}catch(n){i(n);}}),u.command("enable").description("Enable a provider").argument("<id>").action(async e=>{try{await r(K,{id:e}),d("Provider enabled");}catch(t){i(t);}}),u.command("disable").description("Disable a provider").argument("<id>").action(async e=>{try{await r(z,{id:e}),d("Provider disabled");}catch(t){i(t);}}),a.command("logs").description("Integration audit logs").option("--connection <id>").option("--level <l>","INFO|WARN|ERROR").option("--limit <n>","Page size",e=>parseInt(e,10),100).option("-f, --format <format>").action(async e=>{try{let t={};e.connection&&(t.connectionId=e.connection),e.level&&(t.level=e.level.toUpperCase());let n=await r(S,{filter:Object.keys(t).length?t:void 0,pagination:{limit:e.limit,offset:0}});s(e,n.getIntegrationLogs.items,{headers:["When","Action","Level","Message"],rows:n.getIntegrationLogs.items.map(c=>[v(c.createdAt),c.action,c.level,c.message])});}catch(t){i(t);}});}var ge={id:"integrations",version:"1.0.0",displayName:"Integrations",dependsOn:["auth","workspaces"],register(o,a){E(a),X(o);}},Tt=ge;module.exports=Tt;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {a,b as b$1,h,p,
|
|
1
|
+
import {a,b as b$1,i,r,h,p,k as k$1,q as q$1}from'../../chunk-O6UCQ5IT.js';import {o}from'../../chunk-YIY5IDXQ.js';var E=`
|
|
2
2
|
query GetProviders($filter: ProviderFilterInput, $pagination: IntegrationsPaginationInput) {
|
|
3
3
|
getProviders(filter: $filter, pagination: $pagination) {
|
|
4
4
|
items { id key name category authType isEnabled }
|
|
@@ -125,4 +125,4 @@ import {a,b as b$1,h,p,g,n,i,o as o$1}from'../../chunk-W4JZR7RJ.js';import {o}fr
|
|
|
125
125
|
query GetConnectionTags($input: GetConnectionTagsInput!) {
|
|
126
126
|
getConnectionTags(input: $input) { id entityId tagId source assignedAt }
|
|
127
127
|
}
|
|
128
|
-
`;function Y(I){let p$1=I.command("integrations").description("Integration providers, connections, and logs"),d=p$1.command("providers").description("Available providers");d.command("list").description("List integration providers").option("--category <c>").option("--enabled").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async t=>{try{let n={};t.category&&(n.category=t.category.toUpperCase()),t.enabled!==void 0&&(n.isEnabled=t.enabled);let e=await b$1(E,{filter:Object.keys(n).length?n:void 0,pagination:{limit:t.limit,offset:0}});
|
|
128
|
+
`;function Y(I){let p$1=I.command("integrations").description("Integration providers, connections, and logs"),d=p$1.command("providers").description("Available providers");d.command("list").description("List integration providers").option("--category <c>").option("--enabled").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async t=>{try{let n={};t.category&&(n.category=t.category.toUpperCase()),t.enabled!==void 0&&(n.isEnabled=t.enabled);let e=await b$1(E,{filter:Object.keys(n).length?n:void 0,pagination:{limit:t.limit,offset:0}});i(t,e.getProviders.items,{headers:["ID","Key","Name","Category","Auth","Enabled"],rows:e.getProviders.items.map(r$1=>[r(r$1.id,12),r$1.key,r$1.name,r$1.category??"-",r$1.authType??"-",String(!!r$1.isEnabled)])});}catch(n){h(n);}}),d.command("get").description("Get a provider").argument("<id>").option("-f, --format <format>").action(async(t,n)=>{try{let e=await b$1(O,{id:t});if(!e.getProvider)throw new o(`Provider ${t} not found`);i(n,e.getProvider);}catch(e){h(e);}});let s=p$1.command("connections").description("Provider connections (OAuth + credential)");s.command("list").description("List connections").option("--provider <id>").option("--status <s>").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async t=>{try{let n={};t.provider&&(n.providerId=t.provider),t.status&&(n.status=t.status.toUpperCase());let e=await b$1(N,{filter:Object.keys(n).length?n:void 0,pagination:{limit:t.limit,offset:0}});i(t,e.getConnections.items,{headers:["ID","Name","Provider","Status"],rows:e.getConnections.items.map(r$1=>[r(r$1.id,12),r$1.name,r(r$1.providerId,12),p(r$1.status)])});}catch(n){h(n);}}),s.command("get").description("Get a connection").argument("<id>").option("-f, --format <format>").action(async(t,n)=>{try{let e=await b$1(A,{id:t});if(!e.getConnection)throw new o(`Connection ${t} not found`);i(n,e.getConnection);}catch(e){h(e);}}),s.command("add").description("Create a connection (provider id required; credentials stored in vault)").requiredOption("--name <name>").requiredOption("--provider <id>").option("--scopes <s>","Comma-separated scopes").option("-f, --format <format>").action(async t=>{try{let n={name:t.name,providerId:t.provider,grantedScopes:t.scopes?t.scopes.split(","):void 0},e=await b$1(v,{input:n});k$1("Connection created"),i(t,e.createConnection);}catch(n){h(n);}}),s.command("delete").description("Delete a connection").argument("<id>").option("--keep-secret","Keep vault secret",false).action(async(t,n)=>{try{await b$1(R,{id:t,deleteVaultSecret:!n.keepSecret}),k$1("Connection deleted");}catch(e){h(e);}}),s.command("update").description("Update a connection (name / description / config JSON)").argument("<id>").option("--name <name>").option("--description <desc>").option("--config <json>","Config JSON string").option("-f, --format <format>").action(async(t,n)=>{try{let e={};if(n.name!==void 0&&(e.name=n.name),n.description!==void 0&&(e.description=n.description),n.config!==void 0&&(e.config=JSON.parse(n.config)),Object.keys(e).length===0)throw new o("Provide at least one of --name, --description, --config");let r=await b$1(_,{id:t,input:e});k$1("Connection updated"),i(n,r.updateConnection);}catch(e){h(e);}}),s.command("revoke").description("Revoke a connection (soft delete; tokens invalidated)").argument("<connectionId>").option("-f, --format <format>").action(async(t,n)=>{try{let e=await b$1(P,{connectionId:t});k$1("Connection revoked"),i(n,e.revokeConnection);}catch(e){h(e);}}),s.command("test").description("Test a connection (health/auth probe)").argument("<connectionId>").option("-f, --format <format>").action(async(t,n)=>{try{let e=await b$1($,{connectionId:t});i(n,e.testConnection);}catch(e){h(e);}}),s.command("link").description("Link a connection to a channel for DM/notification routing").requiredOption("--channel <channelId>").requiredOption("--connection <id>").requiredOption("--organization <id>").option("-f, --format <format>").action(async t=>{try{let n=await b$1(k,{channelId:t.channel,connectionId:t.connection,organizationId:t.organization});k$1("Linked"),i(t,n.linkIntegrationToChannel);}catch(n){h(n);}}),s.command("refresh-token").description("Force a connection token refresh (OAuth refresh_grant)").argument("<connectionId>").option("-f, --format <format>").action(async(t,n)=>{try{let e=await b$1(b,{connectionId:t});k$1("Token refreshed"),i(n,e.refreshConnectionToken);}catch(e){h(e);}});let g=p$1.command("auth").description("Per-connection auth flows");g.command("api-key").description("Authenticate a connection with an API key").requiredOption("--connection <id>").requiredOption("--api-key <key>").option("-f, --format <format>").action(async t=>{try{let n=await b$1(G,{input:{connectionId:t.connection,apiKey:t.apiKey}});k$1("Authenticated"),i(t,n.authenticateWithApiKey);}catch(n){h(n);}}),g.command("basic").description("Authenticate a connection with Basic Auth").requiredOption("--connection <id>").requiredOption("--username <u>").requiredOption("--password <p>").option("-f, --format <format>").action(async t=>{try{let n=await b$1(S,{input:{connectionId:t.connection,username:t.username,password:t.password}});k$1("Authenticated"),i(t,n.authenticateWithBasicAuth);}catch(n){h(n);}}),g.command("bearer").description("Authenticate a connection with a Bearer token").requiredOption("--connection <id>").requiredOption("--token <t>").option("-f, --format <format>").action(async t=>{try{let n=await b$1(D,{input:{connectionId:t.connection,token:t.token}});k$1("Authenticated"),i(t,n.authenticateWithBearerToken);}catch(n){h(n);}}),g.command("oauth-start").description("Initiate an OAuth flow; prints redirect URL + state").requiredOption("--connection <id>").requiredOption("--redirect-uri <uri>").option("--scopes <s>","Comma-separated scopes").option("-f, --format <format>").action(async t=>{try{let n={connectionId:t.connection,redirectUri:t.redirectUri};t.scopes&&(n.scopes=t.scopes.split(","));let e=await b$1(B,{input:n});i(t,e.initiateOAuth);}catch(n){h(n);}}),g.command("oauth-complete").description("Complete an OAuth flow with the authorization code + state").requiredOption("--connection <id>").requiredOption("--code <c>").requiredOption("--redirect-uri <uri>").requiredOption("--state <s>").option("-f, --format <format>").action(async t=>{try{let n=await b$1(q,{input:{connectionId:t.connection,code:t.code,redirectUri:t.redirectUri,state:t.state}});k$1("OAuth complete"),i(t,n.completeOAuth);}catch(n){h(n);}});let l=s.command("tags").description("Connection tag assignments");l.command("add").description("Tag a connection").requiredOption("--entity <id>").requiredOption("--tag <tagId>").option("--source <s>").option("-f, --format <format>").action(async t=>{try{let n={entityId:t.entity,tagId:t.tag};t.source&&(n.source=t.source);let e=await b$1(H,{input:n});k$1("Tagged"),i(t,e.tagConnection);}catch(n){h(n);}}),l.command("remove").description("Remove a tag from a connection").requiredOption("--entity <id>").requiredOption("--tag <tagId>").action(async t=>{try{await b$1(W,{input:{entityId:t.entity,tagId:t.tag}}),k$1("Tag removed");}catch(n){h(n);}}),l.command("replace").description("Replace all tags on a connection").requiredOption("--entity <id>").requiredOption("--tags <ids>","Comma-separated tag IDs").option("-f, --format <format>").action(async t=>{try{let n=await b$1(z,{input:{entityId:t.entity,tagIds:t.tags.split(",")}});k$1("Tags replaced"),i(t,n.replaceConnectionTags);}catch(n){h(n);}}),l.command("list").description("List tags on a connection").requiredOption("--entity <id>").option("-f, --format <format>").action(async t=>{try{let n=await b$1(M,{input:{entityId:t.entity}});i(t,n.getConnectionTags);}catch(n){h(n);}}),d.command("get-by-key").description("Get a provider by key (e.g. github, slack)").argument("<key>").option("-f, --format <format>").action(async(t,n)=>{try{let e=await b$1(x,{key:t});if(!e.getProviderByKey)throw new o(`Provider ${t} not found`);i(n,e.getProviderByKey);}catch(e){h(e);}}),d.command("catalog").description("Browseable provider catalog").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async t=>{try{let n=await b$1(L,{pagination:{limit:t.limit,offset:0}});i(t,n.getProviderCatalog.items,{headers:["ID","Key","Name","Category","Auth","Enabled"],rows:n.getProviderCatalog.items.map(e=>[r(e.id,12),e.key,e.name,e.category??"-",e.authType??"-",String(!!e.isEnabled)])});}catch(n){h(n);}}),d.command("connections").description("Connections for a given provider").argument("<providerId>").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async(t,n)=>{try{let e=await b$1(U,{providerId:t,pagination:{limit:n.limit,offset:0}});i(n,e.getConnectionsByProvider.items);}catch(e){h(e);}}),d.command("enable").description("Enable a provider").argument("<id>").action(async t=>{try{await b$1(K,{id:t}),k$1("Provider enabled");}catch(n){h(n);}}),d.command("disable").description("Disable a provider").argument("<id>").action(async t=>{try{await b$1(V,{id:t}),k$1("Provider disabled");}catch(n){h(n);}}),p$1.command("logs").description("Integration audit logs").option("--connection <id>").option("--level <l>","INFO|WARN|ERROR").option("--limit <n>","Page size",t=>parseInt(t,10),100).option("-f, --format <format>").action(async t=>{try{let n={};t.connection&&(n.connectionId=t.connection),t.level&&(n.level=t.level.toUpperCase());let e=await b$1(w,{filter:Object.keys(n).length?n:void 0,pagination:{limit:t.limit,offset:0}});i(t,e.getIntegrationLogs.items,{headers:["When","Action","Level","Message"],rows:e.getIntegrationLogs.items.map(r=>[q$1(r.createdAt),r.action,r.level,r.message])});}catch(n){h(n);}});}var F={id:"integrations",version:"1.0.0",displayName:"Integrations",dependsOn:["auth","workspaces"],register(I,p){a(p),Y(I);}},et=F;export{et as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var m=class extends Error{exitCode;hint;constructor(i,t){super(i),this.name="CliUserError",this.exitCode=t?.exitCode??1,this.hint=t?.hint;}},C=class extends m{constructor(i,t){super(i,{exitCode:2,hint:t?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},I=class extends Error{cause;constructor(i,t){super(i),this.name="CliInternalError",this.cause=t;}};var A=null;function h(r){A=r;}function y(){if(!A)throw new I("vibecontrols module helpers used before setHelpersContext was called");return A}function
|
|
1
|
+
'use strict';require('graphql-request'),require('cross-fetch'),require('commander');var m=class extends Error{exitCode;hint;constructor(i,t){super(i),this.name="CliUserError",this.exitCode=t?.exitCode??1,this.hint=t?.hint;}},C=class extends m{constructor(i,t){super(i,{exitCode:2,hint:t?.hint??"Run `<product> auth login` to authenticate."}),this.name="CliAuthError";}},I=class extends Error{cause;constructor(i,t){super(i),this.name="CliInternalError",this.cause=t;}};var A=null;function h(r){A=r;}function y(){if(!A)throw new I("vibecontrols module helpers used before setHelpersContext was called");return A}function Dt(){let r=y();if(!r.auth.isAuthenticated())throw new C("Authentication required.",{hint:`Run \`${r.productName} auth login\` to authenticate.`})}async function a(r,i){return Dt(),y().gql.workspace.request(r,i)}async function w(r,i){return y().gql.workspaceAuthOnly.request(r,i)}function o(r){let i=r instanceof Error?r.message:String(r);throw new m(i)}function s(r,i,t){y().output.formatAndOutput(r,i,t);}function c(r){y().output.printSuccess(r);}function u(r,i){return y().output.truncate(r,i)}var k=`
|
|
2
2
|
query IntSource($id: ID!) {
|
|
3
3
|
intSource(id: $id) {
|
|
4
4
|
id classification codename createdAt description discipline lastSeenAt
|
|
@@ -33,18 +33,18 @@
|
|
|
33
33
|
reliability status tags updatedAt workspaceId
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
`,
|
|
36
|
+
`,x=`
|
|
37
37
|
mutation IntRetireSource($id: ID!) {
|
|
38
38
|
intRetireSource(id: $id)
|
|
39
39
|
}
|
|
40
|
-
`,
|
|
40
|
+
`,D=`
|
|
41
41
|
query IntEntity($id: ID!) {
|
|
42
42
|
intEntity(id: $id) {
|
|
43
43
|
id name type classification confidence description aliases attributes
|
|
44
44
|
latitude longitude threatScore tags lastSeenAt createdAt updatedAt workspaceId
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
-
`,
|
|
47
|
+
`,v=`
|
|
48
48
|
query IntListEntities(
|
|
49
49
|
$confidence: IntConfidence
|
|
50
50
|
$type: IntEntityType
|
|
@@ -308,4 +308,4 @@
|
|
|
308
308
|
query IntHealth {
|
|
309
309
|
intHealth
|
|
310
310
|
}
|
|
311
|
-
`;function E(r,i){try{return JSON.parse(i)}catch{throw new m(`--${r} must be valid JSON`)}}function p(r){let i=Number.parseInt(r,10);if(Number.isNaN(i))throw new m(`Expected an integer but got "${r}"`);return i}function g(r){let i=Number.parseFloat(r);if(Number.isNaN(i))throw new m(`Expected a number but got "${r}"`);return i}function l(r){return r.split(",").map(i=>i.trim()).filter(i=>i.length>0)}function ct(r){let i=r.command("sources").description("IntelWatchtower collection sources");i.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 e=await a(O,{discipline:t.discipline?t.discipline.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});s(t,e.intListSources.items,{headers:["ID","Name","Discipline","Status","Reliability"],rows:e.intListSources.items.map(n=>[u(n.id,12),n.name,n.discipline,n.status,String(n.reliability??0)])});}catch(e){o(e);}}),i.command("get").description("Get a source by id").argument("<id>","Source ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(k,{id:t});if(!n.intSource)throw new m(`Source ${t} not found`);s(e,n.intSource);}catch(n){o(n);}}),i.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 e={name:t.name,discipline:t.discipline.toUpperCase()};t.codename&&(e.codename=t.codename),t.description&&(e.description=t.description),t.operator&&(e.operatorId=t.operator),t.region&&(e.region=t.region),t.reliability!==void 0&&(e.reliability=t.reliability),t.status&&(e.status=t.status.toUpperCase()),t.classification&&(e.classification=t.classification.toUpperCase()),t.tags&&(e.tags=l(t.tags));let n=await a(b,{input:e});c(`Source created: ${n.intCreateSource.name}`),s(t,n.intCreateSource);}catch(e){o(e);}}),i.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,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.discipline&&(n.discipline=e.discipline.toUpperCase()),e.codename&&(n.codename=e.codename),e.description!==void 0&&(n.description=e.description),e.operator&&(n.operatorId=e.operator),e.region&&(n.region=e.region),e.reliability!==void 0&&(n.reliability=e.reliability),e.status&&(n.status=e.status.toUpperCase()),e.classification&&(n.classification=e.classification.toUpperCase()),e.tags&&(n.tags=l(e.tags)),!Object.keys(n).length)throw new m("No updates specified");let T=await a(N,{id:t,input:n});c("Source updated"),s(e,T.intUpdateSource);}catch(n){o(n);}}),i.command("retire").description("Retire (delete) a collection source").argument("<id>","Source ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(D,{id:t});c(`Source retired: ${n.intRetireSource}`),s(e,{retired:n.intRetireSource});}catch(n){o(n);}});}function dt(r){let i=r.command("entities").description("IntelWatchtower entities of interest");i.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 e=await a(x,{type:t.type?t.type.toUpperCase():void 0,confidence:t.confidence?t.confidence.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});s(t,e.intListEntities.items,{headers:["ID","Name","Type","Confidence","Threat"],rows:e.intListEntities.items.map(n=>[u(n.id,12),n.name,n.type,n.confidence,String(n.threatScore??0)])});}catch(e){o(e);}}),i.command("get").description("Get an entity by id").argument("<id>","Entity ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(v,{id:t});if(!n.intEntity)throw new m(`Entity ${t} not found`);s(e,n.intEntity);}catch(n){o(n);}}),i.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 e={name:t.name,type:t.type.toUpperCase()};t.description&&(e.description=t.description),t.confidence&&(e.confidence=t.confidence.toUpperCase()),t.classification&&(e.classification=t.classification.toUpperCase()),t.aliases&&(e.aliases=l(t.aliases)),t.latitude!==void 0&&(e.latitude=t.latitude),t.longitude!==void 0&&(e.longitude=t.longitude),t.threatScore!==void 0&&(e.threatScore=t.threatScore),t.tags&&(e.tags=l(t.tags)),t.attributes&&(e.attributes=E("attributes",t.attributes));let n=await a(L,{input:e});c(`Entity created: ${n.intCreateEntity.name}`),s(t,n.intCreateEntity);}catch(e){o(e);}}),i.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,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.description!==void 0&&(n.description=e.description),e.confidence&&(n.confidence=e.confidence.toUpperCase()),e.classification&&(n.classification=e.classification.toUpperCase()),e.aliases&&(n.aliases=l(e.aliases)),e.latitude!==void 0&&(n.latitude=e.latitude),e.longitude!==void 0&&(n.longitude=e.longitude),e.threatScore!==void 0&&(n.threatScore=e.threatScore),e.tags&&(n.tags=l(e.tags)),e.attributes&&(n.attributes=E("attributes",e.attributes)),!Object.keys(n).length)throw new m("No updates specified");let T=await a($,{id:t,input:n});c("Entity updated"),s(e,T.intUpdateEntity);}catch(n){o(n);}});}function ut(r){let i=r.command("indicators").description("IntelWatchtower indicators (IOCs)");i.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 e=await a(_,{entityId:t.entity,type:t.type?t.type.toUpperCase():void 0,isActive:t.active});s(t,e.intListIndicators,{headers:["ID","Type","Value","Confidence","Active"],rows:e.intListIndicators.map(n=>[u(n.id,12),n.type,u(n.value,30),n.confidence,n.isActive?"yes":"no"])});}catch(e){o(e);}}),i.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 e={type:t.type.toUpperCase(),value:t.value};t.entity&&(e.entityId=t.entity),t.description&&(e.description=t.description),t.confidence&&(e.confidence=t.confidence.toUpperCase()),t.classification&&(e.classification=t.classification.toUpperCase()),t.validFrom&&(e.validFrom=t.validFrom),t.validUntil&&(e.validUntil=t.validUntil);let n=await a(q,{input:e});c(`Indicator created: ${n.intCreateIndicator.value}`),s(t,n.intCreateIndicator);}catch(e){o(e);}}),i.command("deactivate").description("Deactivate an indicator").argument("<id>","Indicator ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(P,{id:t});c("Indicator deactivated"),s(e,n.intDeactivateIndicator);}catch(n){o(n);}});}function pt(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 e={name:t.name,sourceId:t.source};t.endpoint&&(e.endpoint=t.endpoint),t.format&&(e.format=t.format),t.status&&(e.status=t.status.toUpperCase());let n=await a(U,{input:e});c(`Feed created: ${n.intCreateFeed.name}`),s({format:t.outputFormat},n.intCreateFeed);}catch(e){o(e);}});}function mt(r){let i=r.command("missions").description("IntelWatchtower missions");i.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 e=await a(F,{status:t.status?t.status.toUpperCase():void 0});s(t,e.intListMissions,{headers:["ID","Name","Codename","Classification","Status"],rows:e.intListMissions.map(n=>[u(n.id,12),n.name,n.codename??"-",n.classification,n.status])});}catch(e){o(e);}}),i.command("get").description("Get a mission by id").argument("<id>","Mission ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(M,{id:t});if(!n.intMission)throw new m(`Mission ${t} not found`);s(e,n.intMission);}catch(n){o(n);}}),i.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 e={name:t.name};t.codename&&(e.codename=t.codename),t.objective&&(e.objective=t.objective),t.commander&&(e.commanderId=t.commander),t.classification&&(e.classification=t.classification.toUpperCase()),t.startAt&&(e.startAt=t.startAt),t.endAt&&(e.endAt=t.endAt),t.tags&&(e.tags=l(t.tags));let n=await a(W,{input:e});c(`Mission created: ${n.intCreateMission.name}`),s(t,n.intCreateMission);}catch(e){o(e);}}),i.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,e)=>{try{let n=await a(G,{id:t,status:e.status.toUpperCase()});c(`Mission status set to ${n.intTransitionMission.status}`),s(e,n.intTransitionMission);}catch(n){o(n);}});}function lt(r){let i=r.command("cases").description("IntelWatchtower investigation cases");i.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 e=await a(H,{missionId:t.mission,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});s(t,e.intListCases.items,{headers:["ID","Title","Classification","Status","Priority"],rows:e.intListCases.items.map(n=>[u(n.id,12),n.title,n.classification,n.status,n.priority])});}catch(e){o(e);}}),i.command("get").description("Get a case by id").argument("<id>","Case ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(V,{id:t});if(!n.intCase)throw new m(`Case ${t} not found`);s(e,n.intCase);}catch(n){o(n);}}),i.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 e={title:t.title};t.summary&&(e.summary=t.summary),t.reference&&(e.reference=t.reference),t.mission&&(e.missionId=t.mission),t.leadAnalyst&&(e.leadAnalystId=t.leadAnalyst),t.priority&&(e.priority=t.priority.toUpperCase()),t.classification&&(e.classification=t.classification.toUpperCase()),t.tags&&(e.tags=l(t.tags));let n=await a(j,{input:e});c(`Case created: ${n.intCreateCase.title}`),s(t,n.intCreateCase);}catch(e){o(e);}}),i.command("close").description("Close a case").argument("<id>","Case ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(B,{id:t});c("Case closed"),s(e,n.intCloseCase);}catch(n){o(n);}}),i.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 e={caseId:t.case,kind:t.kind,body:t.body};t.file&&(e.fileId=t.file);let n=await a(Y,{input:e});c("Case entry added"),s(t,n.intAddCaseEntry);}catch(e){o(e);}});}function ft(r){let i=r.command("requirements").description("IntelWatchtower collection requirements");i.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 e=await a(z,{missionId:t.mission,status:t.status?t.status.toUpperCase():void 0});s(t,e.intListRequirements,{headers:["ID","Title","Classification","Priority","Status"],rows:e.intListRequirements.map(n=>[u(n.id,12),n.title,n.classification,n.priority,n.status])});}catch(e){o(e);}}),i.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 e={title:t.title};t.description&&(e.description=t.description),t.mission&&(e.missionId=t.mission),t.requestedBy&&(e.requestedById=t.requestedBy),t.priority&&(e.priority=t.priority.toUpperCase()),t.classification&&(e.classification=t.classification.toUpperCase()),t.dueDate&&(e.dueDate=t.dueDate),t.tags&&(e.tags=l(t.tags));let n=await a(K,{input:e});c(`Requirement created: ${n.intCreateRequirement.title}`),s(t,n.intCreateRequirement);}catch(e){o(e);}});}function gt(r){let i=r.command("tasks").description("IntelWatchtower collection tasks (taskings)");i.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 e=await a(J,{sourceId:t.source,requirementId:t.requirement,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});s(t,e.intListTasks.items,{headers:["ID","Source","Requirement","Status"],rows:e.intListTasks.items.map(n=>[u(n.id,12),u(n.sourceId,12),n.requirementId?u(n.requirementId,12):"-",n.status])});}catch(e){o(e);}}),i.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 e={sourceId:t.source};t.requirement&&(e.requirementId=t.requirement),t.instructions&&(e.instructions=t.instructions),t.startAt&&(e.startAt=t.startAt),t.endAt&&(e.endAt=t.endAt);let n=await a(Q,{input:e});c(`Task created: ${n.intCreateTask.id}`),s(t,n.intCreateTask);}catch(e){o(e);}}),i.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,e)=>{try{let n=await a(X,{id:t,status:e.status.toUpperCase()});c(`Task status set to ${n.intTransitionTask.status}`),s(e,n.intTransitionTask);}catch(n){o(n);}});}function It(r){let i=r.command("observations").description("IntelWatchtower observations (collected reporting)");i.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 e=await a(Z,{entityId:t.entity,sourceId:t.source,taskId:t.task,pagination:{limit:t.limit,offset:t.offset}});s(t,e.intListObservations.items,{headers:["ID","Source","Classification","Summary"],rows:e.intListObservations.items.map(n=>[u(n.id,12),u(n.sourceId,12),n.classification,u(n.summary,40)])});}catch(e){o(e);}}),i.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 e={sourceId:t.source,summary:t.summary,observedAt:t.observedAt};t.entity&&(e.entityId=t.entity),t.task&&(e.taskId=t.task),t.classification&&(e.classification=t.classification.toUpperCase()),t.latitude!==void 0&&(e.latitude=t.latitude),t.longitude!==void 0&&(e.longitude=t.longitude),t.payload&&(e.payload=E("payload",t.payload));let n=await a(tt,{input:e});c(`Observation recorded: ${n.intRecordObservation.id}`),s(t,n.intRecordObservation);}catch(e){o(e);}});}function Ct(r){let i=r.command("alerts").description("IntelWatchtower alerts");i.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 e=await a(et,{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}});s(t,e.intListAlerts.items,{headers:["ID","Title","Severity","Status","Classification"],rows:e.intListAlerts.items.map(n=>[u(n.id,12),n.title,n.severity,n.status,n.classification])});}catch(e){o(e);}}),i.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 e={title:t.title};t.description&&(e.description=t.description),t.severity&&(e.severity=t.severity.toUpperCase()),t.classification&&(e.classification=t.classification.toUpperCase()),t.entity&&(e.entityId=t.entity),t.indicator&&(e.indicatorId=t.indicator),t.mission&&(e.missionId=t.mission),t.assignedTo&&(e.assignedToId=t.assignedTo);let n=await a(nt,{input:e});c(`Alert raised: ${n.intRaiseAlert.title}`),s(t,n.intRaiseAlert);}catch(e){o(e);}}),i.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,e)=>{try{let n=await a(it,{id:t,status:e.status.toUpperCase(),triageNotes:e.triageNotes});c(`Alert status set to ${n.intTransitionAlert.status}`),s(e,n.intTransitionAlert);}catch(n){o(n);}});}function yt(r){let i=r.command("reports").description("IntelWatchtower intelligence reports");i.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 e=await a(rt,{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}});s(t,e.intListReports.items,{headers:["ID","Title","Type","Classification","Status"],rows:e.intListReports.items.map(n=>[u(n.id,12),n.title,n.type,n.classification,n.status])});}catch(e){o(e);}}),i.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 e={title:t.title};t.type&&(e.type=t.type.toUpperCase()),t.summary&&(e.summary=t.summary),t.body&&(e.body=t.body),t.author&&(e.authorId=t.author),t.case&&(e.caseId=t.case),t.mission&&(e.missionId=t.mission),t.file&&(e.fileId=t.file),t.classification&&(e.classification=t.classification.toUpperCase()),t.tags&&(e.tags=l(t.tags));let n=await a(ot,{input:e});c(`Report created: ${n.intCreateReport.title}`),s(t,n.intCreateReport);}catch(e){o(e);}}),i.command("release").description("Release a report").argument("<id>","Report ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(st,{id:t});c("Report released"),s(e,n.intReleaseReport);}catch(n){o(n);}});}function Et(r){r.command("health").description("IntelWatchtower service health check (public)").option("-f, --format <format>","Output format").action(async i=>{try{let t=await w(at);c(t.intHealth),s(i,{health:t.intHealth});}catch(t){o(t);}});}var xt={id:"intelwatchtower",version:"1.0.0",displayName:"IntelWatchtower",dependsOn:["auth","workspaces"],register(r,i){h(i);let t=r.command("intelwatchtower").description("IntelWatchtower intelligence operations platform");ct(t),dt(t),ut(t),pt(t),mt(t),lt(t),ft(t),gt(t),It(t),Ct(t),yt(t),Et(t);}},Un=xt;module.exports=Un;
|
|
311
|
+
`;function E(r,i){try{return JSON.parse(i)}catch{throw new m(`--${r} must be valid JSON`)}}function p(r){let i=Number.parseInt(r,10);if(Number.isNaN(i))throw new m(`Expected an integer but got "${r}"`);return i}function g(r){let i=Number.parseFloat(r);if(Number.isNaN(i))throw new m(`Expected a number but got "${r}"`);return i}function l(r){return r.split(",").map(i=>i.trim()).filter(i=>i.length>0)}function ct(r){let i=r.command("sources").description("IntelWatchtower collection sources");i.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 e=await a(O,{discipline:t.discipline?t.discipline.toUpperCase():void 0,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});s(t,e.intListSources.items,{headers:["ID","Name","Discipline","Status","Reliability"],rows:e.intListSources.items.map(n=>[u(n.id,12),n.name,n.discipline,n.status,String(n.reliability??0)])});}catch(e){o(e);}}),i.command("get").description("Get a source by id").argument("<id>","Source ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(k,{id:t});if(!n.intSource)throw new m(`Source ${t} not found`);s(e,n.intSource);}catch(n){o(n);}}),i.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 e={name:t.name,discipline:t.discipline.toUpperCase()};t.codename&&(e.codename=t.codename),t.description&&(e.description=t.description),t.operator&&(e.operatorId=t.operator),t.region&&(e.region=t.region),t.reliability!==void 0&&(e.reliability=t.reliability),t.status&&(e.status=t.status.toUpperCase()),t.classification&&(e.classification=t.classification.toUpperCase()),t.tags&&(e.tags=l(t.tags));let n=await a(b,{input:e});c(`Source created: ${n.intCreateSource.name}`),s(t,n.intCreateSource);}catch(e){o(e);}}),i.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,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.discipline&&(n.discipline=e.discipline.toUpperCase()),e.codename&&(n.codename=e.codename),e.description!==void 0&&(n.description=e.description),e.operator&&(n.operatorId=e.operator),e.region&&(n.region=e.region),e.reliability!==void 0&&(n.reliability=e.reliability),e.status&&(n.status=e.status.toUpperCase()),e.classification&&(n.classification=e.classification.toUpperCase()),e.tags&&(n.tags=l(e.tags)),!Object.keys(n).length)throw new m("No updates specified");let T=await a(N,{id:t,input:n});c("Source updated"),s(e,T.intUpdateSource);}catch(n){o(n);}}),i.command("retire").description("Retire (delete) a collection source").argument("<id>","Source ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(x,{id:t});c(`Source retired: ${n.intRetireSource}`),s(e,{retired:n.intRetireSource});}catch(n){o(n);}});}function dt(r){let i=r.command("entities").description("IntelWatchtower entities of interest");i.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 e=await a(v,{type:t.type?t.type.toUpperCase():void 0,confidence:t.confidence?t.confidence.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});s(t,e.intListEntities.items,{headers:["ID","Name","Type","Confidence","Threat"],rows:e.intListEntities.items.map(n=>[u(n.id,12),n.name,n.type,n.confidence,String(n.threatScore??0)])});}catch(e){o(e);}}),i.command("get").description("Get an entity by id").argument("<id>","Entity ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(D,{id:t});if(!n.intEntity)throw new m(`Entity ${t} not found`);s(e,n.intEntity);}catch(n){o(n);}}),i.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 e={name:t.name,type:t.type.toUpperCase()};t.description&&(e.description=t.description),t.confidence&&(e.confidence=t.confidence.toUpperCase()),t.classification&&(e.classification=t.classification.toUpperCase()),t.aliases&&(e.aliases=l(t.aliases)),t.latitude!==void 0&&(e.latitude=t.latitude),t.longitude!==void 0&&(e.longitude=t.longitude),t.threatScore!==void 0&&(e.threatScore=t.threatScore),t.tags&&(e.tags=l(t.tags)),t.attributes&&(e.attributes=E("attributes",t.attributes));let n=await a(L,{input:e});c(`Entity created: ${n.intCreateEntity.name}`),s(t,n.intCreateEntity);}catch(e){o(e);}}),i.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,e)=>{try{let n={};if(e.name&&(n.name=e.name),e.description!==void 0&&(n.description=e.description),e.confidence&&(n.confidence=e.confidence.toUpperCase()),e.classification&&(n.classification=e.classification.toUpperCase()),e.aliases&&(n.aliases=l(e.aliases)),e.latitude!==void 0&&(n.latitude=e.latitude),e.longitude!==void 0&&(n.longitude=e.longitude),e.threatScore!==void 0&&(n.threatScore=e.threatScore),e.tags&&(n.tags=l(e.tags)),e.attributes&&(n.attributes=E("attributes",e.attributes)),!Object.keys(n).length)throw new m("No updates specified");let T=await a($,{id:t,input:n});c("Entity updated"),s(e,T.intUpdateEntity);}catch(n){o(n);}});}function ut(r){let i=r.command("indicators").description("IntelWatchtower indicators (IOCs)");i.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 e=await a(_,{entityId:t.entity,type:t.type?t.type.toUpperCase():void 0,isActive:t.active});s(t,e.intListIndicators,{headers:["ID","Type","Value","Confidence","Active"],rows:e.intListIndicators.map(n=>[u(n.id,12),n.type,u(n.value,30),n.confidence,n.isActive?"yes":"no"])});}catch(e){o(e);}}),i.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 e={type:t.type.toUpperCase(),value:t.value};t.entity&&(e.entityId=t.entity),t.description&&(e.description=t.description),t.confidence&&(e.confidence=t.confidence.toUpperCase()),t.classification&&(e.classification=t.classification.toUpperCase()),t.validFrom&&(e.validFrom=t.validFrom),t.validUntil&&(e.validUntil=t.validUntil);let n=await a(q,{input:e});c(`Indicator created: ${n.intCreateIndicator.value}`),s(t,n.intCreateIndicator);}catch(e){o(e);}}),i.command("deactivate").description("Deactivate an indicator").argument("<id>","Indicator ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(P,{id:t});c("Indicator deactivated"),s(e,n.intDeactivateIndicator);}catch(n){o(n);}});}function pt(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 e={name:t.name,sourceId:t.source};t.endpoint&&(e.endpoint=t.endpoint),t.format&&(e.format=t.format),t.status&&(e.status=t.status.toUpperCase());let n=await a(U,{input:e});c(`Feed created: ${n.intCreateFeed.name}`),s({format:t.outputFormat},n.intCreateFeed);}catch(e){o(e);}});}function mt(r){let i=r.command("missions").description("IntelWatchtower missions");i.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 e=await a(F,{status:t.status?t.status.toUpperCase():void 0});s(t,e.intListMissions,{headers:["ID","Name","Codename","Classification","Status"],rows:e.intListMissions.map(n=>[u(n.id,12),n.name,n.codename??"-",n.classification,n.status])});}catch(e){o(e);}}),i.command("get").description("Get a mission by id").argument("<id>","Mission ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(M,{id:t});if(!n.intMission)throw new m(`Mission ${t} not found`);s(e,n.intMission);}catch(n){o(n);}}),i.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 e={name:t.name};t.codename&&(e.codename=t.codename),t.objective&&(e.objective=t.objective),t.commander&&(e.commanderId=t.commander),t.classification&&(e.classification=t.classification.toUpperCase()),t.startAt&&(e.startAt=t.startAt),t.endAt&&(e.endAt=t.endAt),t.tags&&(e.tags=l(t.tags));let n=await a(W,{input:e});c(`Mission created: ${n.intCreateMission.name}`),s(t,n.intCreateMission);}catch(e){o(e);}}),i.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,e)=>{try{let n=await a(G,{id:t,status:e.status.toUpperCase()});c(`Mission status set to ${n.intTransitionMission.status}`),s(e,n.intTransitionMission);}catch(n){o(n);}});}function lt(r){let i=r.command("cases").description("IntelWatchtower investigation cases");i.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 e=await a(H,{missionId:t.mission,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});s(t,e.intListCases.items,{headers:["ID","Title","Classification","Status","Priority"],rows:e.intListCases.items.map(n=>[u(n.id,12),n.title,n.classification,n.status,n.priority])});}catch(e){o(e);}}),i.command("get").description("Get a case by id").argument("<id>","Case ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(V,{id:t});if(!n.intCase)throw new m(`Case ${t} not found`);s(e,n.intCase);}catch(n){o(n);}}),i.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 e={title:t.title};t.summary&&(e.summary=t.summary),t.reference&&(e.reference=t.reference),t.mission&&(e.missionId=t.mission),t.leadAnalyst&&(e.leadAnalystId=t.leadAnalyst),t.priority&&(e.priority=t.priority.toUpperCase()),t.classification&&(e.classification=t.classification.toUpperCase()),t.tags&&(e.tags=l(t.tags));let n=await a(j,{input:e});c(`Case created: ${n.intCreateCase.title}`),s(t,n.intCreateCase);}catch(e){o(e);}}),i.command("close").description("Close a case").argument("<id>","Case ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(B,{id:t});c("Case closed"),s(e,n.intCloseCase);}catch(n){o(n);}}),i.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 e={caseId:t.case,kind:t.kind,body:t.body};t.file&&(e.fileId=t.file);let n=await a(Y,{input:e});c("Case entry added"),s(t,n.intAddCaseEntry);}catch(e){o(e);}});}function ft(r){let i=r.command("requirements").description("IntelWatchtower collection requirements");i.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 e=await a(z,{missionId:t.mission,status:t.status?t.status.toUpperCase():void 0});s(t,e.intListRequirements,{headers:["ID","Title","Classification","Priority","Status"],rows:e.intListRequirements.map(n=>[u(n.id,12),n.title,n.classification,n.priority,n.status])});}catch(e){o(e);}}),i.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 e={title:t.title};t.description&&(e.description=t.description),t.mission&&(e.missionId=t.mission),t.requestedBy&&(e.requestedById=t.requestedBy),t.priority&&(e.priority=t.priority.toUpperCase()),t.classification&&(e.classification=t.classification.toUpperCase()),t.dueDate&&(e.dueDate=t.dueDate),t.tags&&(e.tags=l(t.tags));let n=await a(K,{input:e});c(`Requirement created: ${n.intCreateRequirement.title}`),s(t,n.intCreateRequirement);}catch(e){o(e);}});}function gt(r){let i=r.command("tasks").description("IntelWatchtower collection tasks (taskings)");i.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 e=await a(J,{sourceId:t.source,requirementId:t.requirement,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});s(t,e.intListTasks.items,{headers:["ID","Source","Requirement","Status"],rows:e.intListTasks.items.map(n=>[u(n.id,12),u(n.sourceId,12),n.requirementId?u(n.requirementId,12):"-",n.status])});}catch(e){o(e);}}),i.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 e={sourceId:t.source};t.requirement&&(e.requirementId=t.requirement),t.instructions&&(e.instructions=t.instructions),t.startAt&&(e.startAt=t.startAt),t.endAt&&(e.endAt=t.endAt);let n=await a(Q,{input:e});c(`Task created: ${n.intCreateTask.id}`),s(t,n.intCreateTask);}catch(e){o(e);}}),i.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,e)=>{try{let n=await a(X,{id:t,status:e.status.toUpperCase()});c(`Task status set to ${n.intTransitionTask.status}`),s(e,n.intTransitionTask);}catch(n){o(n);}});}function It(r){let i=r.command("observations").description("IntelWatchtower observations (collected reporting)");i.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 e=await a(Z,{entityId:t.entity,sourceId:t.source,taskId:t.task,pagination:{limit:t.limit,offset:t.offset}});s(t,e.intListObservations.items,{headers:["ID","Source","Classification","Summary"],rows:e.intListObservations.items.map(n=>[u(n.id,12),u(n.sourceId,12),n.classification,u(n.summary,40)])});}catch(e){o(e);}}),i.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 e={sourceId:t.source,summary:t.summary,observedAt:t.observedAt};t.entity&&(e.entityId=t.entity),t.task&&(e.taskId=t.task),t.classification&&(e.classification=t.classification.toUpperCase()),t.latitude!==void 0&&(e.latitude=t.latitude),t.longitude!==void 0&&(e.longitude=t.longitude),t.payload&&(e.payload=E("payload",t.payload));let n=await a(tt,{input:e});c(`Observation recorded: ${n.intRecordObservation.id}`),s(t,n.intRecordObservation);}catch(e){o(e);}});}function Ct(r){let i=r.command("alerts").description("IntelWatchtower alerts");i.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 e=await a(et,{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}});s(t,e.intListAlerts.items,{headers:["ID","Title","Severity","Status","Classification"],rows:e.intListAlerts.items.map(n=>[u(n.id,12),n.title,n.severity,n.status,n.classification])});}catch(e){o(e);}}),i.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 e={title:t.title};t.description&&(e.description=t.description),t.severity&&(e.severity=t.severity.toUpperCase()),t.classification&&(e.classification=t.classification.toUpperCase()),t.entity&&(e.entityId=t.entity),t.indicator&&(e.indicatorId=t.indicator),t.mission&&(e.missionId=t.mission),t.assignedTo&&(e.assignedToId=t.assignedTo);let n=await a(nt,{input:e});c(`Alert raised: ${n.intRaiseAlert.title}`),s(t,n.intRaiseAlert);}catch(e){o(e);}}),i.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,e)=>{try{let n=await a(it,{id:t,status:e.status.toUpperCase(),triageNotes:e.triageNotes});c(`Alert status set to ${n.intTransitionAlert.status}`),s(e,n.intTransitionAlert);}catch(n){o(n);}});}function yt(r){let i=r.command("reports").description("IntelWatchtower intelligence reports");i.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 e=await a(rt,{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}});s(t,e.intListReports.items,{headers:["ID","Title","Type","Classification","Status"],rows:e.intListReports.items.map(n=>[u(n.id,12),n.title,n.type,n.classification,n.status])});}catch(e){o(e);}}),i.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 e={title:t.title};t.type&&(e.type=t.type.toUpperCase()),t.summary&&(e.summary=t.summary),t.body&&(e.body=t.body),t.author&&(e.authorId=t.author),t.case&&(e.caseId=t.case),t.mission&&(e.missionId=t.mission),t.file&&(e.fileId=t.file),t.classification&&(e.classification=t.classification.toUpperCase()),t.tags&&(e.tags=l(t.tags));let n=await a(ot,{input:e});c(`Report created: ${n.intCreateReport.title}`),s(t,n.intCreateReport);}catch(e){o(e);}}),i.command("release").description("Release a report").argument("<id>","Report ID").option("-f, --format <format>","Output format").action(async(t,e)=>{try{let n=await a(st,{id:t});c("Report released"),s(e,n.intReleaseReport);}catch(n){o(n);}});}function Et(r){r.command("health").description("IntelWatchtower service health check (public)").option("-f, --format <format>","Output format").action(async i=>{try{let t=await w(at);c(t.intHealth),s(i,{health:t.intHealth});}catch(t){o(t);}});}var vt={id:"intelwatchtower",version:"1.0.0",displayName:"IntelWatchtower",dependsOn:["auth","workspaces"],register(r,i){h(i);let t=r.command("intelwatchtower").description("IntelWatchtower intelligence operations platform");ct(t),dt(t),ut(t),pt(t),mt(t),lt(t),ft(t),gt(t),It(t),Ct(t),yt(t),Et(t);}},Un=vt;module.exports=Un;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {a,b as b$1,h as h$1,
|
|
1
|
+
import {a,b as b$1,i,r,h as h$1,k as k$1,d}from'../../chunk-O6UCQ5IT.js';import {o}from'../../chunk-YIY5IDXQ.js';var A=`
|
|
2
2
|
query IntSource($id: ID!) {
|
|
3
3
|
intSource(id: $id) {
|
|
4
4
|
id classification codename createdAt description discipline lastSeenAt
|
|
@@ -308,4 +308,4 @@ import {a,b as b$1,h as h$1,p as p$1,g as g$1,i,d}from'../../chunk-W4JZR7RJ.js';
|
|
|
308
308
|
query IntHealth {
|
|
309
309
|
intHealth
|
|
310
310
|
}
|
|
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){let n=r.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=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}});h$1(t,i.intListSources.items,{headers:["ID","Name","Discipline","Status","Reliability"],rows:i.intListSources.items.map(e=>[p$1(e.id,12),e.name,e.discipline,e.status,String(e.reliability??0)])});}catch(i){g$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)=>{try{let e=await b$1(A,{id:t});if(!e.intSource)throw new o(`Source ${t} not found`);h$1(i,e.intSource);}catch(e){g$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});i(`Source created: ${e.intCreateSource.name}`),h$1(t,e.intCreateSource);}catch(i){g$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});i("Source updated"),h$1(i$1,E.intUpdateSource);}catch(e){g$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});i(`Source retired: ${e.intRetireSource}`),h$1(i$1,{retired:e.intRetireSource});}catch(e){g$1(e);}});}function st(r){let n=r.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=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}});h$1(t,i.intListEntities.items,{headers:["ID","Name","Type","Confidence","Threat"],rows:i.intListEntities.items.map(e=>[p$1(e.id,12),e.name,e.type,e.confidence,String(e.threatScore??0)])});}catch(i){g$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)=>{try{let e=await b$1(D,{id:t});if(!e.intEntity)throw new o(`Entity ${t} not found`);h$1(i,e.intEntity);}catch(e){g$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});i(`Entity created: ${e.intCreateEntity.name}`),h$1(t,e.intCreateEntity);}catch(i){g$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});i("Entity updated"),h$1(i$1,E.intUpdateEntity);}catch(e){g$1(e);}});}function ot(r){let n=r.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=await b$1(b,{entityId:t.entity,type:t.type?t.type.toUpperCase():void 0,isActive:t.active});h$1(t,i.intListIndicators,{headers:["ID","Type","Value","Confidence","Active"],rows:i.intListIndicators.map(e=>[p$1(e.id,12),e.type,p$1(e.value,30),e.confidence,e.isActive?"yes":"no"])});}catch(i){g$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});i(`Indicator created: ${e.intCreateIndicator.value}`),h$1(t,e.intCreateIndicator);}catch(i){g$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});i("Indicator deactivated"),h$1(i$1,e.intDeactivateIndicator);}catch(e){g$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});i(`Feed created: ${e.intCreateFeed.name}`),h$1({format:t.outputFormat},e.intCreateFeed);}catch(i){g$1(i);}});}function rt(r){let n=r.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=await b$1(U,{status:t.status?t.status.toUpperCase():void 0});h$1(t,i.intListMissions,{headers:["ID","Name","Codename","Classification","Status"],rows:i.intListMissions.map(e=>[p$1(e.id,12),e.name,e.codename??"-",e.classification,e.status])});}catch(i){g$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)=>{try{let e=await b$1(v,{id:t});if(!e.intMission)throw new o(`Mission ${t} not found`);h$1(i,e.intMission);}catch(e){g$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});i(`Mission created: ${e.intCreateMission.name}`),h$1(t,e.intCreateMission);}catch(i){g$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()});i(`Mission status set to ${e.intTransitionMission.status}`),h$1(i$1,e.intTransitionMission);}catch(e){g$1(e);}});}function ct(r){let n=r.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=await b$1(P,{missionId:t.mission,status:t.status?t.status.toUpperCase():void 0,pagination:{limit:t.limit,offset:t.offset}});h$1(t,i.intListCases.items,{headers:["ID","Title","Classification","Status","Priority"],rows:i.intListCases.items.map(e=>[p$1(e.id,12),e.title,e.classification,e.status,e.priority])});}catch(i){g$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)=>{try{let e=await b$1(F,{id:t});if(!e.intCase)throw new o(`Case ${t} not found`);h$1(i,e.intCase);}catch(e){g$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});i(`Case created: ${e.intCreateCase.title}`),h$1(t,e.intCreateCase);}catch(i){g$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});i("Case closed"),h$1(i$1,e.intCloseCase);}catch(e){g$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});i("Case entry added"),h$1(t,e.intAddCaseEntry);}catch(i){g$1(i);}});}function dt(r){let n=r.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=await b$1(G,{missionId:t.mission,status:t.status?t.status.toUpperCase():void 0});h$1(t,i.intListRequirements,{headers:["ID","Title","Classification","Priority","Status"],rows:i.intListRequirements.map(e=>[p$1(e.id,12),e.title,e.classification,e.priority,e.status])});}catch(i){g$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});i(`Requirement created: ${e.intCreateRequirement.title}`),h$1(t,e.intCreateRequirement);}catch(i){g$1(i);}});}function pt(r){let n=r.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=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}});h$1(t,i.intListTasks.items,{headers:["ID","Source","Requirement","Status"],rows:i.intListTasks.items.map(e=>[p$1(e.id,12),p$1(e.sourceId,12),e.requirementId?p$1(e.requirementId,12):"-",e.status])});}catch(i){g$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});i(`Task created: ${e.intCreateTask.id}`),h$1(t,e.intCreateTask);}catch(i){g$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()});i(`Task status set to ${e.intTransitionTask.status}`),h$1(i$1,e.intTransitionTask);}catch(e){g$1(e);}});}function mt(r){let n=r.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=await b$1(K,{entityId:t.entity,sourceId:t.source,taskId:t.task,pagination:{limit:t.limit,offset:t.offset}});h$1(t,i.intListObservations.items,{headers:["ID","Source","Classification","Summary"],rows:i.intListObservations.items.map(e=>[p$1(e.id,12),p$1(e.sourceId,12),e.classification,p$1(e.summary,40)])});}catch(i){g$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});i(`Observation recorded: ${e.intRecordObservation.id}`),h$1(t,e.intRecordObservation);}catch(i){g$1(i);}});}function ut(r){let n=r.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=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}});h$1(t,i.intListAlerts.items,{headers:["ID","Title","Severity","Status","Classification"],rows:i.intListAlerts.items.map(e=>[p$1(e.id,12),e.title,e.severity,e.status,e.classification])});}catch(i){g$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});i(`Alert raised: ${e.intRaiseAlert.title}`),h$1(t,e.intRaiseAlert);}catch(i){g$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});i(`Alert status set to ${e.intTransitionAlert.status}`),h$1(i$1,e.intTransitionAlert);}catch(e){g$1(e);}});}function It(r){let n=r.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=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}});h$1(t,i.intListReports.items,{headers:["ID","Title","Type","Classification","Status"],rows:i.intListReports.items.map(e=>[p$1(e.id,12),e.title,e.type,e.classification,e.status])});}catch(i){g$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});i(`Report created: ${e.intCreateReport.title}`),h$1(t,e.intCreateReport);}catch(i){g$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});i("Report released"),h$1(i$1,e.intReleaseReport);}catch(e){g$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);i(t.intHealth),h$1(n,{health:t.intHealth});}catch(t){g$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};
|
|
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};
|